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ドクターまでお気軽にお送りください