概要
wpcf7_mail_sent
アクションは、WordPress プラグイン Contact Form 7 でメールが正常に送信された後にトリガーされるフックです。このアクションは、フォーム送信後の処理をカスタマイズするためによく使用されます。具体的な用途としては、以下のようなものが挙げられます:
- 自動返信メールの送信
- フォームデータのログ記録
- サードパーティサービスへのデータ送信
- 送信完了メッセージのカスタマイズ
- 送信イベントのトラッキング
- Google Analytics との統合
構文
do_action( 'wpcf7_mail_sent', $contact_form );
パラメータ
$contact_form
: 送信されたフォームのインスタンス (Contact Form 7 のオブジェクト)。
戻り値
特に戻り値はありませんが、他のフックや関数に影響を与えることができます。
バージョン情報
- 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_mail_sent', 'log_form_data' );
function log_form_data( $contact_form ) {
$submission = WPCF7_Submission::get_instance();
if ( $submission ) {
$data = $submission->get_posted_data();
error_log( print_r( $data, true ) );
}
}
引用元: https://contactform7.com/docs/
サンプル2: サードパーティAPIにデータを送信
このコードは、フォーム送信データをサードパーティのAPIにPOSTリクエストとして送信します。
add_action( 'wpcf7_mail_sent', 'send_data_to_api' );
function send_data_to_api( $contact_form ) {
$submission = WPCF7_Submission::get_instance();
if ( $submission ) {
$data = $submission->get_posted_data();
$response = wp_remote_post( 'https://example.com/api', array(
'body' => $data,
));
}
}
引用元: https://contactform7.com/docs/
サンプル3: 自動返信メールのカスタマイズ
このコードは、フォーム送信後に自動返信メールの内容をカスタマイズします。
add_action( 'wpcf7_mail_sent', 'custom_auto_reply' );
function custom_auto_reply( $contact_form ) {
$mail = $contact_form->prop( 'mail' );
$mail['body'] = 'Thanks for your submission!';
$contact_form->set_properties( array( 'mail' => $mail ) );
}
引用元: https://contactform7.com/docs/
サンプル4: Google Analytics イベントトラッキング
このコードは、フォーム送信が完了した際に Google Analytics にイベントを送信します。
add_action( 'wpcf7_mail_sent', 'track_form_submission' );
function track_form_submission( $contact_form ) {
?>
<script>
gtag('event', 'form_submission', {
'event_category': 'Contact',
'event_label': 'Form Submitted'
});
</script>
<?php
}
引用元: https://contactform7.com/docs/
サンプル5: 送信完了メッセージの表示
このコードは、送信完了メッセージをカスタマイズして表示します。
add_action( 'wpcf7_mail_sent', 'custom_thank_you_message' );
function custom_thank_you_message( $contact_form ) {
echo '<div class="thank-you-message">Thank you for your submission!</div>';
}
引用元: https://contactform7.com/docs/