概要
wpcf7_after_flamingo
アクションは、Contact Form 7のフォームが送信された後に実行され、Flamingoプラグインを使用してデータを保存する際に発火します。このアクションは、フォーム送信後にカスタム処理を追加したり、Flamingoに保存されるデータを変更したりするのに便利です。よく使用される機能は以下の通りです:
- フォームデータをデータベースにカスタム保存
- 送信内容に基づいた条件付きロジックの実装
- データ送信後のイベントトラッキング
- 送信後に指定されたメールアドレスへ通知を送信
- フォーム送信ごとのエラーロギング
- 外部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に送信します。