概要
wpcf7_submit
アクションは、WordPress プラグインの Contact Form 7 において、フォームが送信された後にトリガーされるフックです。このフックを使用することで、フォーム送信後の様々な処理を追加することができます。具体的には、以下のような機能を実装する際によく使われます。
- フォーム送信データのカスタム処理
- フォーム送信後のカスタムメール送信
- データベースに送信内容を保存する処理
- Google Analytics などのトラッキングコードを実行する
- 他のサービスへの API リクエストを行う
- フォーム送信後のリダイレクト処理
構文
add_action('wpcf7_submit', 'your_function_name', 10, 2);
パラメータ
$contact_form
: フォームデータに関するオブジェクト。$result
: フォーム送信の結果に関する配列(成功か失敗かなど)。
戻り値
このアクションは特に戻り値を持ちません。主にカスタム処理を行うために利用されます。
使用可能なバージョン
- 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_submit', 'log_form_submission', 10, 2);
function log_form_submission($contact_form, $result) {
$submission = WPCF7_Submission::get_instance();
if ($submission) {
$data = $submission->get_posted_data();
error_log(print_r($data, true));
}
}
サンプルコード 2: カスタムハンドラの追加
このサンプルは、送信完了後に別のメールを送信する例です。
add_action('wpcf7_submit', 'send_custom_email', 10, 2);
function send_custom_email($contact_form, $result) {
$submission = WPCF7_Submission::get_instance();
if ($submission) {
$data = $submission->get_posted_data();
wp_mail('example@example.com', 'フォームが送信されました', print_r($data, true));
}
}
サンプルコード 3: API への POST リクエスト
このコードは、フォームが送信された後に外部APIにデータを送信する例です。
add_action('wpcf7_submit', 'send_data_to_api', 10, 2);
function send_data_to_api($contact_form, $result) {
$submission = WPCF7_Submission::get_instance();
if ($submission) {
$data = $submission->get_posted_data();
wp_remote_post('https://api.example.com/submit', [
'body' => $data,
]);
}
}
サンプルコード 4: データベースへの保存
この例は、送信データをカスタムテーブルに保存するものです。
add_action('wpcf7_submit', 'save_to_database', 10, 2);
function save_to_database($contact_form, $result) {
global $wpdb;
$submission = WPCF7_Submission::get_instance();
if ($submission) {
$data = $submission->get_posted_data();
$wpdb->insert('wp_custom_table', $data);
}
}
サンプルコード 5: トラッキングスクリプトの挿入
フォームが送信された際にトラッキングスクリプトを挿入する例です。
add_action('wpcf7_submit', 'insert_tracking_script', 10, 2);
function insert_tracking_script($contact_form, $result) {
?>
<script>
console.log('フォームが送信されました');
</script>
<?php
}
各サンプルコードは、目的に応じた処理を実行するためのものです。上記のコードを使用する際は、適宜修正して利用してください。