プラグインWPFormsのwpforms_entry_email_dataフィルタの使用方法・解説

概要

フィルタ wpforms_entry_email_data は、WPForms プラグインにおいてフォームのエントリーに関連するメールのデータを変更するためのフックです。このフィルタを使用することで、送信されるメールの内容をカスタマイズすることができます。具体的には、以下のような機能を実装する際によく使われます。

  1. メールの件名をカスタマイズする。
  2. メール本文にカスタムデータを追加する。
  3. 特定の条件に基づいてメールを送信する内容を変更する。
  4. 送信先のメールアドレスを動的に変更する。
  5. HTML フォーマットでメールを送信するためのスタイリングを追加する。
  6. Spam フィルタを避けるためのテキストを追加する。

構文

add_filter( 'wpforms_entry_email_data', 'custom_wpforms_email_data', 10, 4 );

パラメータ

  1. $email_data (array): メールで送信されるデータ。
  2. $form_data (array): フォームのデータ。
  3. $entry_id (int): フォームエントリーのID。
  4. $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

この関数について質問する


上の計算式の答えを入力してください