概要
フィルタ wpforms_entry_email_data
は、WPForms プラグインにおいてフォームのエントリーに関連するメールのデータを変更するためのフックです。このフィルタを使用することで、送信されるメールの内容をカスタマイズすることができます。具体的には、以下のような機能を実装する際によく使われます。
- メールの件名をカスタマイズする。
- メール本文にカスタムデータを追加する。
- 特定の条件に基づいてメールを送信する内容を変更する。
- 送信先のメールアドレスを動的に変更する。
- HTML フォーマットでメールを送信するためのスタイリングを追加する。
- Spam フィルタを避けるためのテキストを追加する。
構文
add_filter( 'wpforms_entry_email_data', 'custom_wpforms_email_data', 10, 4 );
パラメータ
$email_data
(array): メールで送信されるデータ。$form_data
(array): フォームのデータ。$entry_id
(int): フォームエントリーのID。$form_id
(int): フォームのID。
戻り値
フィルタで変更された $email_data
(array) が戻り値として返されます。
WPForms バージョン
このフィルタは WPForms バージョン 1.0.0 以降で使用可能です。
WordPress バージョン
このフィルタは WordPress バージョン 4.0 以降で使用可能です。
サンプルコード
サンプル 1: メール件名のカスタマイズ
add_filter( 'wpforms_entry_email_data', 'custom_email_subject', 10, 4 );
function custom_email_subject( $email_data, $form_data, $entry_id, $form_id ) {
$email_data['subject'] = '新しいフォームエントリー: ' . $form_data['settings']['form_title'];
return $email_data;
}
このコードは、送信されるメールの件名をフォームタイトルを含む内容にカスタマイズします。
サンプル 2: メール本文にカスタムデータを追加
add_filter( 'wpforms_entry_email_data', 'add_custom_data_to_email', 10, 4 );
function add_custom_data_to_email( $email_data, $form_data, $entry_id, $form_id ) {
$custom_message = 'カスタムメッセージ: こんにちは!';
$email_data['message'] .= "nn" . $custom_message;
return $email_data;
}
このコードは、メール本文の最後にカスタムメッセージを追加します。
サンプル 3: 送信先のメールアドレスを動的に変更
add_filter( 'wpforms_entry_email_data', 'dynamic_email_recipient', 10, 4 );
function dynamic_email_recipient( $email_data, $form_data, $entry_id, $form_id ) {
if ( isset( $form_data['fields'][1]['value'] ) ) {
$email_data['to'] = sanitize_email( $form_data['fields'][1]['value'] );
}
return $email_data;
}
このコードは、フォームの特定のフィールドから取得した値を使って、送信先のメールアドレスを動的に変更します。
サンプル 4: HTML フォーマットのメールを送信
add_filter( 'wpforms_entry_email_data', 'send_html_email', 10, 4 );
function send_html_email( $email_data, $form_data, $entry_id, $form_id ) {
$email_data['is_html'] = true;
$email_data['message'] = '<h1>新しいエントリー</h1><p>' . $email_data['message'] . '</p>';
return $email_data;
}
このコードは、メールを HTML フォーマットで送信するように設定します。
サンプル 5: Spam フィルタ対策のテキストを追加
add_filter( 'wpforms_entry_email_data', 'add_spam_filter_text', 10, 4 );
function add_spam_filter_text( $email_data, $form_data, $entry_id, $form_id ) {
$spam_filter_text = 'このメッセージは自動生成されたものです。';
$email_data['message'] .= "nn" . $spam_filter_text;
return $email_data;
}
このコードは、メール本文にスパムフィルターを避けるためのテキストを追加します。
この関数のアクションでの使用可能性
アクション | 使用可能性 |
---|---|
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 |