概要
wpcf7_additional_mail
フィルタは、WordPressのContact Form 7プラグインで利用されるフックの一つです。このフックを使用することで、CF7のフォーム送信時に追加のメールをカスタマイズしたり、送信内容を変更したりすることができます。具体的には、以下のような機能を実装する際によく使われます。
- 送信先メールアドレスの変更
- 送信されるメールの件名の変更
- メール本文のカスタマイズ
- 添付ファイルの追加
- 送信するメールの形式を変更(HTMLメールなど)
- 特定の条件に応じたメールの送信
構文
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;
}
このコードは、特定の条件が満たされない場合、追加のメール送信をスキップします。