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

概要

wpcf7_submit アクションは、WordPress プラグインの Contact Form 7 において、フォームが送信された後にトリガーされるフックです。このフックを使用することで、フォーム送信後の様々な処理を追加することができます。具体的には、以下のような機能を実装する際によく使われます。

  1. フォーム送信データのカスタム処理
  2. フォーム送信後のカスタムメール送信
  3. データベースに送信内容を保存する処理
  4. Google Analytics などのトラッキングコードを実行する
  5. 他のサービスへの API リクエストを行う
  6. フォーム送信後のリダイレクト処理

構文

add_action('wpcf7_submit', 'your_function_name', 10, 2);

パラメータ

  • $contact_form: フォームデータに関するオブジェクト。
  • $result: フォーム送信の結果に関する配列(成功か失敗かなど)。

戻り値

このアクションは特に戻り値を持ちません。主にカスタム処理を行うために利用されます。

使用可能なバージョン

  • 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_submit', 'log_form_submission', 10, 2);

function log_form_submission($contact_form, $result) {
    $submission = WPCF7_Submission::get_instance();
    if ($submission) {
        $data = $submission->get_posted_data();
        error_log(print_r($data, true));
    }
}

サンプルコード 2: カスタムハンドラの追加

このサンプルは、送信完了後に別のメールを送信する例です。

add_action('wpcf7_submit', 'send_custom_email', 10, 2);

function send_custom_email($contact_form, $result) {
    $submission = WPCF7_Submission::get_instance();
    if ($submission) {
        $data = $submission->get_posted_data();
        wp_mail('example@example.com', 'フォームが送信されました', print_r($data, true));
    }
}

サンプルコード 3: API への POST リクエスト

このコードは、フォームが送信された後に外部APIにデータを送信する例です。

add_action('wpcf7_submit', 'send_data_to_api', 10, 2);

function send_data_to_api($contact_form, $result) {
    $submission = WPCF7_Submission::get_instance();
    if ($submission) {
        $data = $submission->get_posted_data();
        wp_remote_post('https://api.example.com/submit', [
            'body' => $data,
        ]);
    }
}

サンプルコード 4: データベースへの保存

この例は、送信データをカスタムテーブルに保存するものです。

add_action('wpcf7_submit', 'save_to_database', 10, 2);

function save_to_database($contact_form, $result) {
    global $wpdb;
    $submission = WPCF7_Submission::get_instance();
    if ($submission) {
        $data = $submission->get_posted_data();
        $wpdb->insert('wp_custom_table', $data);
    }
}

サンプルコード 5: トラッキングスクリプトの挿入

フォームが送信された際にトラッキングスクリプトを挿入する例です。

add_action('wpcf7_submit', 'insert_tracking_script', 10, 2);

function insert_tracking_script($contact_form, $result) {
    ?>
    <script>
        console.log('フォームが送信されました');
    </script>
    <?php
}

各サンプルコードは、目的に応じた処理を実行するためのものです。上記のコードを使用する際は、適宜修正して利用してください。

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


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