ITTI STAFF
BLOG

イッティWEBスタッフの制作ブログ

Contact Form 7で送信先のメールを振り分ける方法

Wordpressのフォームプラグインcontact form 7で、問い合わせ内容によってメールの送信先を振り分ける方法をご紹介します。

お問い合わせの種別によって、送信するメールを変えたい場合があります。
例えば、ドロップダウンで問い合わせの選択によって、メールの送信先を変えるなどです。

contact form 7で送信先を変更するドロップダウン

Contact Form 7ではデフォルトでこの機能が備わっています。今回はデフォルト機能を使った方法、アクションを使ったメール送信先の変更方法をご紹介します。

Contact Form 7のデフォルト機能で送信先を振り分ける方法

セレクトのオプションに直接メールアドレスを記入するだけです。
セレクトのnameはyour-recipientとして、記入する場合はパイプを使います。

contact form 7で送信先を変更するドロップダウン記入方法

[select* your-recipient "お問い合わせ|inquiry@itti.jp""取材のご依頼|interview@itti.jp""お見積り|order@itti.jp"]

メールの配信先設定に[your-recipient]を記入すると、選択された宛先にメールが振り分けて送信されます。

contact form 7で送信先を変更するメール設定

お問い合わせや、取材のご依頼など、オプションのラベルをメールに表示させたい場合は[_raw_your-recipient]と記入すると、選択された値を表示させることができます。

contact form 7で送信先を変更するメール設定で選択した値を表示させる方法

アクションを使ってメールの送信先を振り分ける方法

アクションを使う利点として、プラグイン「Contact Form 7 Multi-Step Forms」を利用してもメールの振り分けが可能です。selectのnemeも任意のnameを付けることができます。

下記のコードをfunctions.phpに記載することで動作します。
サンプルではselectのnameを「contact_type」として、通常どおりのselectのタグを記入しました。

アクションを使ったメールの送信先の振り分け

add_action('wpcf7_before_send_mail', 'change_recipient_based_on_dropdown_final', 10, 3);

function change_recipient_based_on_dropdown_final($contact_form, &$abort, $submission) {

    $posted_data = $submission->get_posted_data();

    if (!isset($posted_data['contact_type'])) {
        return;
    }

    $contact_type_value = $posted_data['contact_type'];
    
    if (is_array($contact_type_value)) {
        $contact_type = $contact_type_value[0];
    } else {
        $contact_type = $contact_type_value;
    }

    $mail = $contact_form->prop('mail');

    $recipient_email = '';
    switch ($contact_type) {
        case 'お問い合わせ':
            $recipient_email = 'inquiry@gorge.jp';
            break;
        case '取材のご依頼':
            $recipient_email = 'interview@itti.jp';
            break;
        case 'お見積り':
            $recipient_email = 'order@itti.jp';
            break;
    }

    if (!empty($recipient_email)) {
        $mail['recipient'] = $recipient_email;
        $contact_form->set_properties(['mail' => $mail]);
    }
}

メールの配信先はデフォルトの状態でOKです。

アクションを使ったメールの送信先の振り分け。メールの設定方法

フォームのテストをおこないメールが振り分けられている事を確認します。

新しい記事

新宿のWEB制作会社イッティ

新宿のWEB制作会社イッティ