ご注意!

この記事には PHP コードが含まれており、開発者を対象としています。このコードは便宜上提供していますが、コードのカスタマイズやサードパーティの開発についてはサポートを提供していません。

追加のガイダンスについては、WPBeginner の カスタムコードの追加方法に関するチュートリアル を参照してください。

閉じる

説明

wpforms_process_entry_save アクションは、エントリーがデータベースに保存されるときに実行されます。

パラメーター

$fields
(array) サニタイズされたエントリーフィールドの値/プロパティ。
$entry
(array) 元の $_POST グローバル。
$form_id
(int) フォームID。
$form_data
(配列)  後で使用するために処理および準備されたフォーム設定/データ。

ソース

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に一致するように、フォームIDを 5 から変更することを忘れないでください。このチェックを削除すると、すべてのフォームで実行されます。

/**
 * 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とフィールドIDの検索方法についてサポートが必要な場合は、こちらのチュートリアルをご覧ください

参考記事

すでにフォームを送信したユーザーからのエントリーを上書きする方法