概要
wpcf7_save_contact_form
は、Contact Form 7プラグインで定義されたアクションフックです。このフックは、フォームが保存された後、さまざまな処理をトリガーするために使用されます。主に、フォームデータのカスタム処理や、保存操作に対するカスタムロジックを実装する際に利用されます。
このフックを使用するシーン
- フォームの送信データをデータベースに保存
- 特定の条件に基づいてユーザー通知を送信
- フォーム内容に基づいて外部APIにデータを送信
- アナリティクスのトラッキング用のデータを記録
- フォームのカスタムフィールドを操作
- 管理画面にカスタムメッセージを表示
構文
do_action( 'wpcf7_save_contact_form', $contact_form );
パラメータ
$contact_form
: 保存されたContact Form 7のインスタンス。
戻り値
- なし(このアクションは何も返さない)。
使用可能なバージョン
- Contact Form 7のバージョン: 5.0以上
- WordPressのバージョン: 5.0以上
サンプルコード
サンプルコード1: フォームデータをカスタムテーブルに保存
このコードは、Contact Form 7の送信データを独自のカスタムテーブルに保存します。
add_action('wpcf7_save_contact_form', 'save_contact_form_data');
function save_contact_form_data($contact_form) {
$submission = WPCF7_Submission::get_instance();
if ($submission) {
$data = $submission->get_posted_data();
global $wpdb;
$wpdb->insert('your_custom_table', array(
'name' => $data['your-name'],
'email' => $data['your-email'],
'message' => $data['your-message'],
));
}
}
引用元: https://contactform7.com
サンプルコード2: メールを送信
このコードは、フォームが保存された後にカスタムメールを送信します。
add_action('wpcf7_save_contact_form', 'send_custom_email');
function send_custom_email($contact_form) {
$submission = WPCF7_Submission::get_instance();
if ($submission) {
$data = $submission->get_posted_data();
wp_mail('admin@example.com', 'New Contact Form Submission', 'Message: ' . $data['your-message']);
}
}
引用元: https://contactform7.com
サンプルコード3: フォーム送信のアナリティクス処理
このコードでは、Google Analyticsに送信データを記録します。
add_action('wpcf7_save_contact_form', 'log_to_google_analytics');
function log_to_google_analytics($contact_form) {
$submission = WPCF7_Submission::get_instance();
if ($submission) {
$data = $submission->get_posted_data();
echo "<script>
gtag('event', 'contact_form_submission', {
'event_category': 'Contact Form',
'event_label': '" . esc_js($data['your-name']) . "'
});
</script>";
}
}
引用元: https://contactform7.com
サンプルコード4: 特定の条件下での通知
このコードは、特定の条件を満たす場合に管理者に通知を送信します。
add_action('wpcf7_save_contact_form', 'conditional_admin_notification');
function conditional_admin_notification($contact_form) {
$submission = WPCF7_Submission::get_instance();
if ($submission) {
$data = $submission->get_posted_data();
if ($data['your-message'] === 'urgent') {
wp_mail('admin@example.com', 'Urgent Contact Form Submission', 'There is an urgent submission.');
}
}
}
引用元: https://contactform7.com
サンプルコード5: APIへのデータ送信
このコードは、フォームの送信データを外部APIに送信します。
add_action('wpcf7_save_contact_form', '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://api.example.com/data', array(
'body' => json_encode($data),
'headers' => array('Content-Type' => 'application/json'),
));
}
}
引用元: https://contactform7.com
この関数のアクションでの使用可能性
アクション | 使用例 |
---|---|
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 |