2017年以前の旧ブログ
BLOG2017
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での設定で対応する事になりました。