概要
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に送信します。