お久しぶりです。
今回はMW WP Formをフォームとして使用している際、ラジオボタンやセレクトボックスで選択した選択肢によって、送信先を変更したい場合の実装方法です。
ラジオボタンを使った実装方法を見つけたので、参考にしてセレクトボックスでも試してみました。
今回の実装イメージ
言葉では伝わりづらいと感じたので、画像も合わせつつ説明していきます。
上記のように、フォームに選択肢があるとします。
(ラジオボタンでもOK)
1を選んだらaaa@aへ
2を選んだらbbb@bにお問い合わせがあった旨の連絡がいくようにします。
実装方法:WP管理画面
まず参考サイトは下記になります。コードも掲載有、大変わかりやすかったです。
- WP管理画面より、フォームを編集します。
- 「管理者宛メール設定」にある、「送信先」を空にします。
- フォーム識別子の番号「**」を後ほど使います。
- 選択肢のname、選択肢(「メールで送信する値」にチェックを入れている場合、「送信値」を使います。チェック梨は「表示値」を使います。)を後ほど使います。
実装方法:functions.php
functions.phpへ記載するため、本番環境時への実装の際はお気を付けください。
下記を記載します。
function my_mail($Mail_raw, $values, $Data)
{
if ($Data->get('select') == 'aaa') {
$Mail_raw->to = 'aaa@aaa';
} else if ($Data->get('select') == 'bbb') {
$Mail_raw->to = 'bbb@bbb';
}
return $Mail_raw;
}
add_filter('mwform_admin_mail_mw-wp-form-11', 'my_mail', 10, 3);
aaaをお問い合わせフォームで選択した場合、aaa@aaaへ送信
bbbを選択した場合、bbb@bbb(写真だとccc@cccになってしまっておりますが)へと無事送信されました!
なお、この$Data->getについて調べた際、下記のような参考サイトがありました。フォームデータ受け取り方など、解説してくれています。
また、他にも調べると、送信先以外も実装できるようですが、今回試しておりません。
最後に
functions.phpで新たなことに挑戦するのはちょっと怖かったので、自分のブログで色々試してから実装することにしました。
おかげでまた一つできることも増え、しっかりアウトプットもブログで行えたので勉強にもなり一石二鳥です!
ただ、新規でフォーム構築は最近はContact Form7が多いので、どこかで方法調べて実装してみたいなと思います。
最後までお読みいただき、ありがとうございました!