WordPressでお問い合わせフォームなどを作るときなどにお世話になっているプラグイン
「MW WP Form」
大体のことには対応してくれる機能性と設定の手軽さで大変重宝するプラグインです。
今回は便利な機能の中から自動返信の宛先や本文をカスタマイズできるフィルターフックを勉強したのでアウトプットします。
function.phpに下記のようなコードを記述して使用します。
/**
* my_mail
* @param object $Mail_raw
* @param array $values
* @param MW_WP_Form_Data $Data
*/
function my_mail( $Mail_raw, $values, $Data ) {
// to, cc, bcc では {キー} は使用できません。
// $Data->get( 'hoge' ) で送信されたデータが取得できます。
$Mail_raw->from = 'hoge@example.jp'; // 送信元を変更
$Mail_raw->sender = 'hoge'; // 送信者を変更
$Mail_raw->subject = {お名前}様、受け付けました。; // 件名を変更
$Mail_raw->body = '{問い合わせ内容}'; // 本文を変更
return $Mail_raw;
}
add_filter( 'mwform_auto_mail_raw_mw-wp-form-xxx', 'my_mail', 10, 3 );
こんな感じで、管理画面で設定しているものとは違う内容を送付できます。
このフックを使ってやれそうなカスタマイズとしては、
・ラジオボタンで選択した会社名によってフォームの送信先を変更したい。
・カタログ請求フォームでチェックしたカタログの閲覧URLを本文に出力する
このような場面で活躍するかと思います。
例えばこんな感じ
function my_mail( $Mail, $values, $Data ) {
if ($Data->get( category ) == '洋食が好き!'){
$Mail->body = '洋食がお好きなあなたには〇〇をお勧めします!'; // 本文を変更
}
if ($Data->get( category ) == '和食が好き!'){
$Mail->body = '和食がお好きなあなたには〇〇をお勧めします!'; // 本文を変更
}
return $Mail;
}
add_filter( 'mwform_auto_mail_mw-wp-form-XXXX', 'my_mail', 10, 3 );
↑
XXXXにはフォームの管理画面にあるショートコードの番号が入ります。
これくらいのコードだけで、管理画面で設定している自動返信メールの本文を差し替えることが出来ます。
ちなみに最後の
mwform_auto_mail_mw-wp-form-XXXXのように書けば「自動返信メール」を
mwform_admin_mail_mw-wp-form-XXXXと書けば「管理者用メール」を
差し替えることが出来ます。
どちらも差し替えたい場合は並べて書いちゃえばOK!
本文が丸ごと挿し変わるので管理画面に設定していた出力項目は出力されなくなります。
なので挿し変わっても共通で表示させたい項目(お客様が記入したその他のデータ等)は再度出力しなおす必要があります。
こんな感じです。
$Mail->body ="お問い合わせありがとうございます。下記の内容で、お申し込みを受付しました。"."\n"
."お名前:".$Data->get( 'name' )."\n"
."メールアドレス:".$Data->get( 'email' )."\n"
."住所:".$Data->get( 'zip' )."\n"
.'洋食がお好きなあなたには〇〇をお勧めします!';
PHPはあまり書かない僕でも上記のようなラジオボタン分岐であれば、結構カスタマイズ出来そうです。
ですが複数選択のチェックボックスだと、少し難易度高いので、どう書いたらいいのかまだ正解を見出せておりません…
勉強あるのみ!