プラグインContact Form 7のwpcf7_mail_sentアクションの使用方法・解説

概要

wpcf7_mail_sent アクションは、WordPress プラグイン Contact Form 7 でメールが正常に送信された後にトリガーされるフックです。このアクションは、フォーム送信後の処理をカスタマイズするためによく使用されます。具体的な用途としては、以下のようなものが挙げられます:

  1. 自動返信メールの送信
  2. フォームデータのログ記録
  3. サードパーティサービスへのデータ送信
  4. 送信完了メッセージのカスタマイズ
  5. 送信イベントのトラッキング
  6. Google Analytics との統合

構文

do_action( 'wpcf7_mail_sent', $contact_form );

パラメータ

  • $contact_form: 送信されたフォームのインスタンス (Contact Form 7 のオブジェクト)。

戻り値

特に戻り値はありませんが、他のフックや関数に影響を与えることができます。

バージョン情報

  • Contact Form 7 バージョン: 5.0以上
  • WordPress バージョン: 4.0以上

この関数のアクションでの使用可能性

アクション 使用例
mu_plugin_loaded
registered_post_type
plugins_loaded
wp_roles_init
setup_theme
after_setup_theme
set_current_user
init
register_sidebar
wp_loaded
send_headers
parse_query
pre_get_posts
wp
template_redirect
get_header
wp_head

サンプルコード

サンプル1: 送信完了後にログを記録

このサンプルコードは、メールが送信されたときに、フォームデータをログファイルに記録します。

add_action( 'wpcf7_mail_sent', 'log_form_data' );
function log_form_data( $contact_form ) {
    $submission = WPCF7_Submission::get_instance();
    if ( $submission ) {
        $data = $submission->get_posted_data();
        error_log( print_r( $data, true ) );
    }
}

引用元: https://contactform7.com/docs/

サンプル2: サードパーティAPIにデータを送信

このコードは、フォーム送信データをサードパーティのAPIにPOSTリクエストとして送信します。

add_action( 'wpcf7_mail_sent', 'send_data_to_api' );
function send_data_to_api( $contact_form ) {
    $submission = WPCF7_Submission::get_instance();
    if ( $submission ) {
        $data = $submission->get_posted_data();
        $response = wp_remote_post( 'https://example.com/api', array(
            'body' => $data,
        ));
    }
}

引用元: https://contactform7.com/docs/

サンプル3: 自動返信メールのカスタマイズ

このコードは、フォーム送信後に自動返信メールの内容をカスタマイズします。

add_action( 'wpcf7_mail_sent', 'custom_auto_reply' );
function custom_auto_reply( $contact_form ) {
    $mail = $contact_form->prop( 'mail' );
    $mail['body'] = 'Thanks for your submission!';
    $contact_form->set_properties( array( 'mail' => $mail ) );
}

引用元: https://contactform7.com/docs/

サンプル4: Google Analytics イベントトラッキング

このコードは、フォーム送信が完了した際に Google Analytics にイベントを送信します。

add_action( 'wpcf7_mail_sent', 'track_form_submission' );
function track_form_submission( $contact_form ) {
    ?>
    <script>
    gtag('event', 'form_submission', {
        'event_category': 'Contact',
        'event_label': 'Form Submitted'
    });
    </script>
    <?php
}

引用元: https://contactform7.com/docs/

サンプル5: 送信完了メッセージの表示

このコードは、送信完了メッセージをカスタマイズして表示します。

add_action( 'wpcf7_mail_sent', 'custom_thank_you_message' );
function custom_thank_you_message( $contact_form ) {
    echo '<div class="thank-you-message">Thank you for your submission!</div>';
}

引用元: https://contactform7.com/docs/

この関数について質問する


上の計算式の答えを入力してください