概要
wpforms_entry_save_data
アクションは、WPForms プラグインにおいてフォームが送信された際に、エントリデータが保存された直後に実行されるフックです。このアクションは、特に以下のような機能を実装する際に便利です。
- エントリデータのカスタム処理
- 他のデータベーステーブルへのデータ転送
- エントリが保存された際の通知送信
- 送信データのログ記録
- 追加のデータ加工
- 外部 API へのデータ送信
構文
do_action( 'wpforms_entry_save_data', $form_data, $fields, $entry_id );
パラメータ
$form_data
(array): フォームから送信された元のデータ。$fields
(array): 各フィールドの詳細情報。$entry_id
(int): 新しく保存されたエントリの ID。
戻り値
このアクションには戻り値はありません。
使用可能なプラグインとワードプレスのバージョン
- WPForms バージョン: 1.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( 'wpforms_entry_save_data', 'custom_save_data_function', 10, 3 );
function custom_save_data_function( $form_data, $fields, $entry_id ) {
// 特定のフィールドの値を取得
$custom_field_value = $fields[ 'field_id' ]['value'];
// ここでカスタムされたデータとして処理する
// 例: 何かのAPIに送信するなど
}
引用元: WPForms Documentations
サンプルコード 2: データのログ記録
このサンプルコードは、送信されたデータをログファイルに記録します。
add_action( 'wpforms_entry_save_data', 'log_wpforms_entry', 10, 3 );
function log_wpforms_entry( $form_data, $fields, $entry_id ) {
$log_file = plugin_dir_path( __FILE__ ) . 'wpforms-log.txt';
file_put_contents( $log_file, print_r( $form_data, true ), FILE_APPEND );
}
引用元: WordPress Codex
サンプルコード 3: 通知メールの送信
このコードは、フォーム送信後にカスタム通知メールを送信します。
add_action( 'wpforms_entry_save_data', 'send_notification_email', 10, 3 );
function send_notification_email( $form_data, $fields, $entry_id ) {
$to = 'example@example.com';
$subject = '新しいフォームエントリ';
$message = 'エントリが保存されました。';
wp_mail( $to, $subject, $message );
}
引用元: WPForms Tutorials
サンプルコード 4: 外部 API へのデータ送信
このサンプルは、送信されたデータを外部 API に送信する例です。
add_action( 'wpforms_entry_save_data', 'send_data_to_external_api', 10, 3 );
function send_data_to_external_api( $form_data, $fields, $entry_id ) {
$api_url = 'https://example.com/api';
$response = wp_remote_post( $api_url, array(
'body' => json_encode( $form_data ),
'headers' => array( 'Content-Type' => 'application/json' ),
));
}
引用元: API Integration Guide
サンプルコード 5: 自動返信メールのカスタマイズ
このサンプルコードは、エントリ保存後に自動返信メールのカスタマイズを行います。
add_action( 'wpforms_entry_save_data', 'custom_auto_reply', 10, 3 );
function custom_auto_reply( $form_data, $fields, $entry_id ) {
$email = $fields[ 'email' ]['value']; // フィールド名 'email' を想定
$subject = '送信ありがとうございます';
$message = 'あなたのエントリが保存されました。';
wp_mail( $email, $subject, $message );
}
引用元: Custom Notifications Documentation