<html lang="ja-jp" dir="ltr"><head></head><body>### [wpforms_process_complete](https://wpforms.com/developers/wpforms_process_complete/)

**公開日:** 2020年7月17日
**著者:** エディトリアルチーム

**抜粋:** `wpforms_process_complete` アクションは、（正常に完了した）フォーム送信処理の最後に実行されます。

**コンテンツ:**

## 説明

`wpforms_process_complete` アクションは、（正常に完了した）フォーム送信処理の最後に実行されます。

## パラメータ

$fields*(配列)* サニタイズされた送信フィールドの値/プロパティ。
$entry*(配列)* 元の $\_POST グローバル変数。
$form\_data*(配列)* 後で使用するために準備された、処理済みのフォーム設定/データ。
$entry\_id*(整数)* 送信ID。エントリーストレージが無効になっている場合、またはWPForms Liteを使用している場合は0を返します。

## ソース

`wpforms/includes/class-process.php`

## 詳細情報

`wpforms_process_complete` フックは、フォーム処理の最後に実行されます。エントリーが正常であり、エラーが含まれていない場合にのみ実行されます。データベースへのエントリーの保存とメール通知の送信は、このフックが実行される前に行われます。

カスタムAPIインテグレーションの構築や、エントリーが正常に送信された後に何らかのアクションを実行する必要がある場合（カスタムメール通知の送信、投稿やユーザーアカウントの作成など）に人気があります。

このフックの代替バージョンとして、フォームIDで簡単に制限できる `wpforms_process_complete_{$form_id}` が利用可能です。

**重要事項**: 処理を実行していて、エラーを返してフォーム処理を防止する必要がある場合は、代わりに [wpforms\_process](https://wpforms.com/developers/wpforms_process/ "wpforms_process アクション") フックを使用してください。

## 例

例については、[Bill Erickson氏の「Integrating your contact form with external services」](https://www.billerickson.net/contact-form-integration/ "Integrating your contact form with external services") を参照してください。

ターゲットとするフォームIDを `5` から変更することを忘れないでください。

```php

/**
 * これは（正常に完了した）フォーム送信の最後に実行されます。
 *
 * @link  https://wpforms.com/developers/wpforms_process_complete/
 *
 * @param array  $fields    サニタイズされた送信フィールドの値/プロパティ。
 * @param array  $entry     元の $_POST グローバル変数。
 * @param array  $form_data フォームデータと設定。
 * @param int    $entry_id  送信ID。エントリーストレージが無効になっている場合、またはWPForms Liteを使用している場合は0を返します。
 */

function wpf_dev_process_complete( $fields, $entry, $form_data, $entry_id ) {
     
    // オプション：特定のフォームに制限できます。以下は、フォームID 5への出力を制限しています。
    if ( absint( $form_data[ 'id' ] ) !== 5 ) {
        return;
    }
	
	// 完全なエントリーオブジェクトを取得
	$entry = wpforms()-&gt;entry-&gt;get( $entry_id );

	// フィールドはJSON形式なので、配列にデコードします
	$entry_fields = json_decode( $entry-&gt;fields, true );

	// コールバックで「はい」が選択されたかどうかを確認します
	if($entry_fields[6][ 'value' ] === 'Yes') {
		// 非表示フィールドを「コールバックが必要」に設定して、エントリーをフィルタリングします
		$entry_fields[7][ 'value' ] = 'Needs Callback';
	}

	// JSONに戻します
	$entry_fields = json_encode( $entry_fields );

	// 変更を保存
	wpforms()-&gt;entry-&gt;update( $entry_id, array( 'fields' =&gt; $entry_fields ), '', '', array( 'cap' =&gt; false ) );

}
add_action( 'wpforms_process_complete', 'wpf_dev_process_complete', 10, 4 );

```

## 関連記事

[WPFormsの送信日付に年を追加する方法](https://wpforms.com/developers/how-to-add-a-year-to-the-wpforms-entry-date/ "WPFormsの送信日付に年を追加する方法")

**カテゴリー:** アクションフック

**タグ:** エントリー処理, PHP

---</body></html>