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

概要

wpcf7_after_save アクションは、Contact Form 7 でフォームが送信され、データが保存された後に実行されるフックです。このアクションを使用することで、フォーム送信後にデータを処理したり、外部APIに送信したり、カスタムロジックを組み込むことが可能です。具体的には以下のような場面でよく使われます。

  • フォーム送信データをデータベースに保存する。
  • サードパーティのAPIに送信データを転送する。
  • フォーム送信後の通知メールをカスタマイズする。
  • ユーザーの行動をトラッキングする。
  • ユーザーへの確認メッセージを表示する。
  • フォームデータに基づくカスタム処理を実行する。

構文

add_action('wpcf7_after_save', 'your_custom_function', 10, 2);

パラメータ

このアクションには、以下の2つのパラメータが渡されます。

  1. $contact_form – フォームのインスタンス。
  2. $result – 保存結果の配列。

戻り値

このアクションには戻り値がありません。

使用可能なプラグインのバージョン

  • Contact Form 7: バージョン 5.4 以降
  • WordPress: バージョン 4.0 以降

サンプルコード

サンプル1: フォーム送信データをカスタムテーブルに保存

このコードは、送信されたデータをカスタムデータベーステーブルに保存します。

add_action('wpcf7_after_save', 'save_data_to_custom_table', 10, 2);
function save_data_to_custom_table($contact_form, $result) {
    global $wpdb;
    $table_name = $wpdb->prefix . 'custom_table';

    $data = array(
        'name' => $_POST['your-name'],
        'email' => $_POST['your-email'],
    );

    $wpdb->insert($table_name, $data);
}

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

サンプル2: フォーム送信後にWebhookをトリガー

このコードは、フォーム送信後に外部のWebhookにデータを送信します。

add_action('wpcf7_after_save', 'send_webhook_on_form_submission', 10, 2);
function send_webhook_on_form_submission($contact_form, $result) {
    $data = array(
        'name' => $_POST['your-name'],
        'email' => $_POST['your-email'],
    );

    $response = wp_remote_post('https://example.com/webhook', array(
        'body' => json_encode($data),
        'headers' => array('Content-Type' => 'application/json'),
    ));
}

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

サンプル3: フォーム送信後のカスタムメール送信

このコードは、フォーム送信後にカスタムメールを送信します。

add_action('wpcf7_after_save', 'send_custom_email_after_submission', 10, 2);
function send_custom_email_after_submission($contact_form, $result) {
    $to = 'admin@example.com';
    $subject = '新しいフォーム送信';
    $message = '新しいフォームが送信されました。';

    wp_mail($to, $subject, $message);
}

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

サンプル4: フォーム送信データをJSON形式で保存

このコードは、フォーム送信データをJSONファイルに保存します。

add_action('wpcf7_after_save', 'save_data_as_json_file', 10, 2);
function save_data_as_json_file($contact_form, $result) {
    $data = array(
        'name' => $_POST['your-name'],
        'email' => $_POST['your-email'],
    );

    file_put_contents('form_submissions.json', json_encode($data), FILE_APPEND);
}

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

サンプル5: Google Analyticsにイベントを送信

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

add_action('wpcf7_after_save', 'track_form_submission', 10, 2);
function track_form_submission($contact_form, $result) {
    ?>
    <script>
    gtag('event', 'form_submission', {
        'event_category': 'contact',
        'event_label': 'Contact Form 7'
    });
    </script>
    <?php
}

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

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

アクション名 使用例
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
wpcf7_after_save

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


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