概要
wpcf7_after_save
アクションは、Contact Form 7 でフォームが送信され、データが保存された後に実行されるフックです。このアクションを使用することで、フォーム送信後にデータを処理したり、外部APIに送信したり、カスタムロジックを組み込むことが可能です。具体的には以下のような場面でよく使われます。
- フォーム送信データをデータベースに保存する。
- サードパーティのAPIに送信データを転送する。
- フォーム送信後の通知メールをカスタマイズする。
- ユーザーの行動をトラッキングする。
- ユーザーへの確認メッセージを表示する。
- フォームデータに基づくカスタム処理を実行する。
構文
add_action('wpcf7_after_save', 'your_custom_function', 10, 2);
パラメータ
このアクションには、以下の2つのパラメータが渡されます。
$contact_form
– フォームのインスタンス。$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 | 〇 |