CONTACT FORM 7で送信成功後に送信データ(POSTデータ)などを取得する方法を解説いたします。


Contact form7 の送信後にPOSTデータや送信されたコンタクトフォームのIDを取得する

送信後に送信されたPOSTデータを取得するには’wpcf7_mail_sent’アクションにフックして下記のようにします

add_action('wpcf7_mail_sent', 'wpcf7_myhook', 10, 1);
function wpcf7_myhook(){
    $submission = WPCF7_Submission::get_instance();
    //POSTデータの取得
    $postdata = $submission->get_posted_data();
    $value = $postdata['value'];
}

CONTACT FORM のIDの取得には下記のようにいたします

$contact_form = WPCF7_ContactForm::get_current();
$contact_form_id = $contact_form -> id;

CONTACT FORMが埋め込まれている投稿や固定ページのIDを取得するには下記のようにいたします

$submission = WPCF7_Submission::get_instance();
//POSTデータの取得
$postdata = $submission->get_posted_data();
$post_id = $postdata[ 'container_post_id' ];

Contact Form7の送信成功後にお問い合わせフォームが埋め込まれたページのカスタムフィールドを更新する

こちらのコードのサンプルコードは下記のようになります。

add_action('wpcf7_mail_sent', 'wpcf7_mycustom_function', 10, 1);
function wpcf7_mycustom_function(){
    $submission = WPCF7_Submission::get_instance();
    if ( $submission ) {
        
        //POSTデータの取得
        $postdata = $submission->get_posted_data(); 
        
        //CONTACT FORM のIDの取得
        $contact_form = WPCF7_ContactForm::get_current();
        $contact_form_id = $contact_form -> id;
        
        //CONTACT FORMが埋め込まれている投稿や固定ページのID
        $post_id = $postdata[ 'container_post_id' ];
        
        ///CONTACT FORMが埋め込まれている投稿や固定ページに最終送信時間のカスタムフィールドを追加(更新)
        update_post_meta($post_id,'最後に送信された時間', date('Y-m-d H:i:s'););
    }
}

add_action(‘wpcf7_mail_sent’ でContact Form7の送信後のアクションにフックしてwpcf7_mycustom_functionを実行しています。

update_post_metaに投稿のID、カスタムフィールド名、更新したい値を渡して、Contact Form7の送信成功後にお問い合わせフォームが埋め込まれたページのカスタムフィールドを更新しています。

WordPress ワードプレスのテーマやプラグインのコーディング(カスタマイズ)のご依頼・ご相談はWPドクターまでお気軽にお送りください