概要
wpforms_tasks_entry_emails_trigger_send_same_process
フィルタは、WPForms プラグインにおいて、フォームエントリーが新たに作成されたときにメールが送信されるプロセスをカスタマイズするために使用されます。このフィルタを使用することで、メール送信の動作を変更したり、追加の処理を行ったりすることができます。
主な利用シーンは以下の通りです。
- 特定の条件に基づいてメールを送信しないようにしたい場合。
- メールの送信内容をダイナミックに変更したい場合。
- エントリーの特定のフィールドに基づいて、メールの受取人を変更する場合。
- メール送信後にカスタムロギングを行いたい場合。
- 外部APIと連携してエントリー情報を送信する場合。
- メール送信の際に追加の通知を管理者に送信したい場合。
このフィルタは、WPForms のバージョン 1.3.0 以降で使用可能であり、WordPress のバージョン 4.9 以降が必要です。
構文
add_filter('wpforms_tasks_entry_emails_trigger_send_same_process', 'your_function_name', 10, 3);
パラメータ
$send
(bool) – メールを送信するかどうかのフラグ。$form_data
(array) – フォームのデータ。$entry
(array) – エントリー情報。
戻り値
- (bool) – メールを送信するかどうかのフラグ。デフォルトは
true
。
この関数のアクションでの使用可能性
アクション | 使用可能性 |
---|---|
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_filter('wpforms_tasks_entry_emails_trigger_send_same_process', 'stop_email_send', 10, 3);
function stop_email_send($send, $form_data, $entry) {
// 特定のフォームIDを持つエントリーの場合、メールを送信しない
if ($form_data['id'] == 123) {
return false; // メール送信を停止
}
return $send;
}
このコードは特定のフォームID (123) に対してメールの送信を停止します。
サンプルコード2: メール内容の変更
add_filter('wpforms_tasks_entry_emails_trigger_send_same_process', 'custom_email_content', 10, 3);
function custom_email_content($send, $form_data, $entry) {
// メール内容を変更する場合
add_filter('wpforms_email_content', function($content) {
return 'カスタムメッセージ: ' . $content;
});
return $send;
}
このコードは、メールの内容にカスタムメッセージを追加します。
サンプルコード3: 特定の受取人への送信
add_filter('wpforms_tasks_entry_emails_trigger_send_same_process', 'modify_email_recipients', 10, 3);
function modify_email_recipients($send, $form_data, $entry) {
// 特定のフィールドに基づいて受取人を変更
if (!empty($entry['fields'][1]['value'])) { // assuming the field ID is 1
wpforms()->email->to = $entry['fields'][1]['value'];
}
return $send;
}
このコードでは、特定のフィールドの値をメールの受取人として設定します。
サンプルコード4: メール送信後のロギング
add_filter('wpforms_tasks_entry_emails_trigger_send_same_process', 'log_email_send', 10, 3);
function log_email_send($send, $form_data, $entry) {
if ($send) {
error_log('Email sent for entry ID: ' . $entry['id']); // ログに書き込む
}
return $send;
}
このコードは、メールが送信された際にデバッグログにエントリーIDを記録します。
サンプルコード5: 外部APIとの連携
add_filter('wpforms_tasks_entry_emails_trigger_send_same_process', 'send_to_external_api', 10, 3);
function send_to_external_api($send, $form_data, $entry) {
$api_url = 'https://example.com/api/submit'; // 外部APIのURL
wp_remote_post($api_url, ['body' => json_encode($entry)]);
return $send;
}
このコードは、メール送信時にエントリー情報を外部APIに送信します。