AI要約
説明
wpforms_process_before アクションは、フォームの送信ボタンがクリックされた後に発生しますが、フォームデータが検証またはクリーニングされる前です。
パラメーター
- $entry
- (array) 未検証のエントリデータ。
- $form_data
- (配列) 後で使用するために処理および準備されたフォーム設定/データ。
ソース
wpforms/includes/class-process.php
詳細情報
このアクションは、フォームの送信ボタンがクリックされてからほぼ直後に発生し、エントリの検証が行われる前です。この時点ではエントリデータは検証またはクリーニングされていないため、このフックは注意して使用してください。
以下のスニペットは、このフックに含まれるパラメータの詳細を示しています(それぞれに追加のフィルターオプションが含まれています)。
$entry = apply_filters( 'wpforms_process_before_filter', $entry, $form_data ); $form_data = apply_filters( 'wpforms_process_before_form_data', wpforms_decode( $form->post_content ), $entry );
たとえば、すべてのフォームエントリをCRMに保存し、完全に処理されるまで「失敗」としてタグ付けしたい場合があります。その後、後続のフックのいずれかを使用して、その「失敗」タグを削除し、「完了」に更新することができます。
このフックはデータが検証される前に使用されることを覚えておいてください。そのため、このフックは注意して使用してください。
例
コードを実行したい特定のフォームIDに合わせて、フォームIDを5から変更することを忘れないでください。または、すべてのWPFormsで実行したい場合は、すべて削除してください。
/**
* This action fires almost immediately after the form’s submit button is clicked, before validation takes place for the entry.
*
* @link https://wpforms.com/developers/wpforms_process_before/
*
* @param array $entry Unvalidated entry data.
* @param array $form_data Form data and settings.
*/
function wpf_dev_process_before( $entry, $form_data ) {
// Only run on my form with ID = 5
if ( absint( $form_data[ 'id' ] ) !== 5 ) {
return;
}
// place your custom code here
}
add_action( 'wpforms_process_before', 'wpf_dev_process_before', 10, 2 );