プラグインContact Form 7のwpcf7_additional_mailフィルタの使用方法・解説

概要

wpcf7_additional_mailフィルタは、WordPressのContact Form 7プラグインで利用されるフックの一つです。このフックを使用することで、CF7のフォーム送信時に追加のメールをカスタマイズしたり、送信内容を変更したりすることができます。具体的には、以下のような機能を実装する際によく使われます。

  1. 送信先メールアドレスの変更
  2. 送信されるメールの件名の変更
  3. メール本文のカスタマイズ
  4. 添付ファイルの追加
  5. 送信するメールの形式を変更(HTMLメールなど)
  6. 特定の条件に応じたメールの送信

構文

add_filter('wpcf7_additional_mail', 'custom_additional_mail', 10, 3);

パラメータ

  • $additional_mail (array): 追加のメールの設定が含まれる配列。
  • $contact_form (WPCF7_ContactForm): 現在のフォームインスタンス。
  • $submission (WPCF7_Submission): フォーム送信情報のオブジェクト。

戻り値

  • (array): 修正された追加のメール設定を返します。

使用可能なバージョン

  • Contact Form 7のバージョン: 5.x以降
  • WordPressのバージョン: 5.x以降

この関数のアクションでの使用可能性

アクション 使用可能性
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

サンプルコード

以下に、wpcf7_additional_mailフィルタを使用したサンプルコードをいくつか示します。

サンプル1: 追加のメールを送信先を変更する

add_filter('wpcf7_additional_mail', 'change_additional_mail_recipient', 10, 3);
function change_additional_mail_recipient($additional_mail, $contact_form, $submission) {
    $additional_mail['recipient'] = 'newrecipient@example.com';
    return $additional_mail;
}

このコードは、追加のメールの送信先を newrecipient@example.com に変更します。

サンプル2: メールの件名をカスタマイズ

add_filter('wpcf7_additional_mail', 'customize_additional_mail_subject', 10, 3);
function customize_additional_mail_subject($additional_mail, $contact_form, $submission) {
    $additional_mail['subject'] = 'カスタム件名: ' . $submission->get_posted_data()['your-subject'];
    return $additional_mail;
}

このコードは、追加のメールの件名をカスタマイズし、送信フォームから取得した情報を含めます。

サンプル3: メール本文のカスタマイズ

add_filter('wpcf7_additional_mail', 'modify_additional_mail_body', 10, 3);
function modify_additional_mail_body($additional_mail, $contact_form, $submission) {
    $additional_mail['body'] .= "nn追加情報: " . $submission->get_posted_data()['additional-info'];
    return $additional_mail;
}

このコードは、追加のメール本文にユーザーが入力した追加情報を加えます。

サンプル4: 添付ファイルを追加する

add_filter('wpcf7_additional_mail', 'attach_file_to_additional_mail', 10, 3);
function attach_file_to_additional_mail($additional_mail, $contact_form, $submission) {
    $additional_mail['attachments'] = array(WP_CONTENT_DIR . '/uploads/your-file.pdf');
    return $additional_mail;
}

このコードは、追加のメールに特定のファイルを添付します。

サンプル5: 特定の条件でメール送信をスキップする

add_filter('wpcf7_additional_mail', 'conditional_additional_mail', 10, 3);
function conditional_additional_mail($additional_mail, $contact_form, $submission) {
    if ($submission->get_posted_data()['your-field'] === '条件に合致しない') {
        return false; // メールの送信をスキップする
    }
    return $additional_mail;
}

このコードは、特定の条件が満たされない場合、追加のメール送信をスキップします。

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


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