説明
について wpforms_process_entry_save
アクションは、エントリーがデータベースに保存されたときに実行されます。
パラメータ
- フィールド
- (配列) サニタイズされたエントリーフィールドの値/プロパティ。
- エントリー
- (配列) オリジナルの $_POST グローバル。
- フォームID
- (int) フォームID。
- フォームデータ
- (配列) 処理済みのフォーム設定/データ。
ソース
wpforms/includes/class-process.php
詳細情報
このアクションは、エントリーがデータベースに保存され、正常に処理された後に実行されます。確認イベントと通知メールは、このフックが実行された後にトリガーされます。
以下はその背景である。 wpforms_process_entry_save
フックが実行される。
このフックは wpforms/pro/wpforms-pro.php
これは、有料プラグインバージョンに固有の機能と特徴をロードします。
/** * @param array $fields * @param array $entry * @param int $form_id * @param array $form_data * * @return int */ public function entry_save( $fields, $entry, $form_id, $form_data = '' ) { do_action( 'wpforms_process_entry_save', $fields, $entry, $form_id, $form_data ); return $this->entry_id; }
例
このアクションを使えば、エントリーがデータベースに保存されたときに何かをトリガーすることが簡単にできる。
フォームIDを 5
をチェックして、コードを実行したい特定のフォームIDに一致させます。このチェックを外すと、すべてのフォームに対して実行されます。
/** * Action that fires when an entry is saved to the database. * * @link https://wpforms.com/developers/wpforms_process_entry_save/ * * @param array $fields Sanitized entry field. values/properties. * @param array $entry Original $_POST global. * @param int $form_id Form ID. * @param array $form_data Form data and settings. */ function wpf_dev_process_entry_save( $fields, $entry, $form_id, $form_data ) { // Only run on my form with ID = 5 if ( absint( $form_data[ 'id' ] ) !== 5 ) { return $fields; } // Example checking for the Yes value of a checkbox field (ID 6) and if yes, we'll then run our code if($fields[6][ 'value' ] === 'Yes') { // run some code here } } add_action( 'wpforms_process_entry_save', 'wpf_dev_process_entry_save', 10, 4 );
フォームとフィールドのIDの場所についてヘルプが必要な場合は、こちらのチュートリアルをご覧ください。