説明

確認メッセージの出力をサイト全体でフィルタリングする。

パラメータ

メッセージ
(文字列) (必須)処理されたスマートタグを含む確認メッセージ。
フォームデータ
(配列) (必須)処理済の フ ォ ーム設定 / デー タ 。
フィールド
(配列) (必須)サニタイズされたフィールドデータ。
$entry_id
(int) (必須)エントリ ID。

ソース

wpforms/src/Frontend/Frontend.php

詳細情報

このフィルタは確認メッセージを表示するように設定されたすべてのフォームに適用されます。このフィルタは表示される確認メッセージを変更したり置き換えたりするために使われ、フォームビルダーで設定されたメッセージ内容を上書きします。

以下に示す例では、フォームに入力したユーザー名を取得し、確認メッセージにはよりパーソナライズされたメッセージを表示します。

フォームIDを 25 を、コードを実行したい特定のフォームIDに一致させます。このチェックを外すと、すべてのフォームに対して実行されます。

/**
 * Filters confirmation message output site-wide.
 *
 * @link   https://wpforms.com/developers/wpforms_frontend_confirmation_message/
 * 
 * @param  string   $message     Confirmation message including Smart Tags.
 * @param  array    $form_data   Form data and settings.
 * @param  array    $fields      Sanitized field data.
 * @param  int      $entry_id    Entry ID.
 *
 * @return string
 */

function wpf_dev_frontend_confirmation_message( $message, $form_data, $fields, $entry_id ) {
    
    // Only run on my form with ID = 25
    if ( absint( $form_data[ 'id' ] ) !== 25 ) {
            return $message;
        } 

    // also it is possible to access the first, middle, and the last name as follows inplace of [ 'value' ]
    //  $contact_name = $fields[ '0' ][ 'first' ]; - this will pass in the first name
    //  $contact_name = $fields[ '0' ][ 'last' ]; - this will pass in the last name
    //  $contact_name = $fields[ '0' ][ 'middle' ]; - this will pass in the middle name in the format First Middle Last
         
    // Get the name field ID '0' to set the name for the message
    $contact_name = $fields[ '0' ][ 'value' ];
    
    // Add the name to the message
    $message = __('Thanks ' . $contact_name .  ' we will be in touch!', 'plugin-domain');
    return $message;
     
}
add_filter( 'wpforms_frontend_confirmation_message', 'wpf_dev_frontend_confirmation_message', 10, 4 );

参考記事