2017年以前の旧ブログ

BLOG2017

MW WP Formで選択項目によりメールアドレス変更

ダーシノ Other Blog

select、チェックボックス、ラジオボタン等で選択した内容によって、メール内容を変更したい場合のまとめです。
実際に管理者のtoを変更したのですが、別の使い方もあるので備忘録用に記載。

まずはフォーム制作

通常のフォーム設置なんで、普通に

<div class="p_form_title">お名前<span class="p_form_must">必須</span></div>
<div class="p_form_input">[mwform_text name="name"]</div>
<div class="p_form_title">ふりがな<span class="p_form_must">必須</span></div>
<div class="p_form_input">[mwform_text name="kana-name"]</div>
<div class="p_form_title">お問い合わせ項目<span class="p_form_must">必須</span></div>
<div class="p_form_input">[mwform_radio name="sample_radio" children="ラジオA,ラジオB,ラジオC"]</div>
<div class="p_form_title">メールアドレス</div>
<div class="p_form_input">[mwform_email name="email"]</div>
<div class="p_form_title">お問合せ内容<span class="p_form_must">必須</span></div>
<div class="p_form_input">[mwform_textarea name="message"]</div>
<div class="p_form_submit">
[mwform_submitButton name="mwform_submitButton-813" confirm_value="内容を確認する" submit_value="送信する"]
[mwform_backButton value="送信内容を変更する"]
</div>

こんな感じで設置していきます。

今回はこの「お問い合わせ項目」の sample_radio をトリガーに管理者用の送信先メールアドレスを変更します。

function.phpで振り分け

記載する内容

function autoback_my_mail( $Mail_raw, $values, $Data ) {
	if ($Data->get( 'sample_radio' ) == 'ラジオA'){
		$Mail_raw->to = 'sample1@dphp778.sakura.ne.jp';
	} else if ($Data->get( 'sample_radio' ) == 'ラジオB'){
		$Mail_raw->to = 'sample2@dphp778.sakura.ne.jp';
	} else{
		$Mail_raw->to = 'sample3@dphp778.sakura.ne.jp';
	}
	return $Mail_raw;
}
add_filter( 'mwform_admin_mail_mw-wp-form-XXX', 'autoback_my_mail', 10, 3 );

ラジオCはelseに含まれるので割愛。
mwform_admin_mail_mw-wp-form-XXXの"XXX"をMW WP Fromのショートコードに記載されてるフォーム識別子の数字を記載します。
上記の場合は管理者宛メールの送信先メールアドレスが変換されます。

また、最後の
mwform_admin_mail_mw-wp-form-XXX

mwform_auto_mail_raw_mw-wp-form-XXX
に変更すれば自動返信メールの内容を変更できます。

送信先以外にも、

//送信元を変更する場合
$Mail_raw->from = 'sample1@dphp778.sakura.ne.jp';
//送信者を変更する場合
$Mail_raw->sender = 'sample1';
//件名を変更する場合
$Mail_raw->subject = '{name}様、お問い合わせありがとうございます。';

の様に利用できます。

注意事項として、function.phpに記載した箇所は管理画面上の設定は反映されないので、function.phpでしっかり設定必要です。

失敗例

最初管理者宛送信先メールアドレスをJqueryで設定しようとしたのですが、選択して変換した値を空のinputに入れて、そのコードを{hidden_mailaddress}として設定した時、送信先メールアドレス入力欄のみコードが適用されませんでしたので、function.phpでの設定で対応する事になりました。