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

概要

wpcf7_after_flamingo アクションは、Contact Form 7のフォームが送信された後に実行され、Flamingoプラグインを使用してデータを保存する際に発火します。このアクションは、フォーム送信後にカスタム処理を追加したり、Flamingoに保存されるデータを変更したりするのに便利です。よく使用される機能は以下の通りです:

  1. フォームデータをデータベースにカスタム保存
  2. 送信内容に基づいた条件付きロジックの実装
  3. データ送信後のイベントトラッキング
  4. 送信後に指定されたメールアドレスへ通知を送信
  5. フォーム送信ごとのエラーロギング
  6. 外部APIへのデータ送信

構文

do_action( 'wpcf7_after_flamingo', $contact_form, $result );

パラメータ

  • $contact_form:送信されたContact Form 7のインスタンス
  • $result:送信結果の配列(成功または失敗等を含む)

戻り値

このアクションは戻り値を持ちません。

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

  • Contact Form 7:5.0以降
  • Flamingo:1.0以降

使用可能なWordPressバージョン

WordPress 4.9以降

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

アクション 使用例
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_after_flamingo', 'save_to_custom_table', 10, 2 );
function save_to_custom_table( $contact_form, $result ) {
    global $wpdb;
    $table_name = $wpdb->prefix . 'custom_table';
    $data = [
        'name' => $_POST['your-name'],
        'email' => $_POST['your-email'],
    ];
    $wpdb->insert( $table_name, $data );
}

このコードは、Contact Form 7のフォーム送信後に、指定されたカスタムテーブルにデータを保存します。

サンプル2: 送信後にSlackへ通知を送信する

add_action( 'wpcf7_after_flamingo', 'send_slack_notification', 10, 2 );
function send_slack_notification( $contact_form, $result ) {
    $webhook_url = 'https://hooks.slack.com/services/XXXXX/XXXXX/XXXXX';
    $message = '新しい送信があります。';

    wp_remote_post( $webhook_url, [
        'body' => json_encode(['text' => $message]),
        'headers' => ['Content-Type' => 'application/json'],
    ]);
}

このコードは、フォームが送信された後に指定されたSlackチャンネルに通知を送信します。

サンプル3: 送信データをログファイルに記録する

add_action( 'wpcf7_after_flamingo', 'log_form_submission', 10, 2 );
function log_form_submission( $contact_form, $result ) {
    $log_file = plugin_dir_path( __FILE__ ) . 'submission.log';
    $log_entry = "Form Submitted: " . json_encode($_POST) . "n";
    file_put_contents( $log_file, $log_entry, FILE_APPEND );
}

このコードは、送信されたフォームデータを特定のログファイルに保存します。

サンプル4: 送信者へサンキューメールを送信する

add_action( 'wpcf7_after_flamingo', 'send_thank_you_email', 10, 2 );
function send_thank_you_email( $contact_form, $result ) {
    $email = $_POST['your-email'];
    $subject = 'ご送信ありがとうございます';
    $message = 'フォームの送信が正常に完了しました。';

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

このコードは、フォームの送信が完了したことを送信者に通知するためのサンキューメールを送ります。

サンプル5: 他のAPIに送信データを送る

add_action( 'wpcf7_after_flamingo', 'send_data_to_external_api', 10, 2 );
function send_data_to_external_api( $contact_form, $result ) {
    $response = wp_remote_post( 'https://api.example.com/endpoint', [
        'body' => [
            'name' => $_POST['your-name'],
            'email' => $_POST['your-email'],
        ],
    ]);
}

このコードは、Contact Form 7の送信データを指定された外部APIに送信します。

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


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