大阪 ホームページ制作 ool > oolog > ホームページ制作 > MW WP Form 自動返信メールを複数人に送りたいときのフィルターフックによるカスタマイズ

MW WP Form 自動返信メールを複数人に送りたいときのフィルターフックによるカスタマイズ

小売卸のクライアントから、今までFAXだったお客様からの発注書をメールにしたいという要望があったので、MW WP Formを使って作ったときにあれこれあったのでメモ書きです。

MW WP Formのフィルターフック

自動返信メール用

mwform_auto_mail_raw_mw-wp-form-xxx

管理者用

mwform_admin_mail_raw_mw-wp-form-xxx

※xxxはフォーム識別子の番号

要望1:自動返信メールの宛先を複数にしたい

MW WP Formは、基本的に問い合わせフォームなので、問い合わせがあったメールアドレスに自動返信を返せば事足りるため、自動返信用のアドレスを複数にしたり、CCを増やしたりという機能がありません。Google先生に「MW WP Form 自動返信メール 複数」など調べてもそれらしい事例がなく困っていました。どうにかフォームの設定内で出来ないか試したのですが、出来る気配がなく辿り着いたのがフィルターフックです。

自動返信メールの部分に「,」コンマでメールを区切って入れてみたり、hiddenパラメーターを使ってみたり、自動返信用のメールアドレスを
aaa@xxx.com,bbb@xxx.com
とコンマで区切って入れてみても全然できませんでした。

/* CCにアドレス追加 */
function add_cc_mail($mail, $values, $data){
	$mail->cc = "bbb@xxx.com";
	return $mail;
}
add_filter( 'mwform_auto_mail_raw_mw-wp-form-xxx', 'add_cc_mail', 10, 3); //自動送信メール

$mail -> cc = の後のメールアドレスに、ccc@やddd@をコンマ区切りで追加することも出来る

$mail->cc = "bbb@xxx.com,ccc@xxx.com,ddd@xxx.com";

ccの部分をtoにすれば、toの書き換えになる。

mwform_auto_mail_raw_mw-wp-form-xxxの使えるコード
to,cc,bcc,from,sender,subject,bodyなど。メールの内容全てカスタマイズすることができます。

$mail > = to ""; // 送り先のメールアドレス
$mail > = cc ""; // 送り先のcc
$mail > = bcc ""; // 送り先のbcc
$mail > = from ""; // 管理者とか管理用アドレス
$mail > = sender ""; // 送信者
$mail > = subject ""; // メールタイトル
$mail > = body ""; // 本文

色々探して、中々見つからなかったのでメモしておきます。

要望2:MW WP Formで値が空の場合は、メール本文から消したい

自動返信メールの送り先を複数にしたいという要望からは少し外れるのですが、フォームの任意の項目で値の無い列を消してほしいという要望がありました。ベースが発注書なので、取引先によっては50個程度の製品が並んでいる発注書もあります。値が無いのにメールで表示されると見づらいので解消したい。

aaaa 1本
bbb 個
ccc 2個

というようなケースで、bbbには値がありません。空(カラ)です。(0という数字が入ると機能しない)

メールでは、aaa 1本、ccc 2個という値だけ来て欲しい。

aaa:{aaa} 本
bbb:{bbb} 個
ccc:{ccc} 個

{bbb}の値は、ブランクとなってメールにも記載される。

値が空の場合は、メール本文から消す がしたい!をかなえるfunction.php用のコード

function mail_delete_blank( $mail, $values, $data ) {
    if ( $values['aaa'] == '' ) {
        $mail->body = str_replace( 'aaa:{aaa} 本'."\r\n", '', $mail->body );
    }
    if ( $values['bbb'] == '' ) {
        $mail->body = str_replace( 'bbb:{bbb} 個'."\r\n", '', $mail->body );
    }
    if ( $values['ccc'] == '' ) {
        $mail->body = str_replace( 'ccc:{ccc} 個'."\r\n", '', $mail->body );
    }
    return $mail;
}
add_filter( 'mwform_admin_mail_raw_mw-wp-form-xxx', 'mail_delete_blank', 10, 3); //管理者宛メール
add_filter( 'mwform_auto_mail_raw_mw-wp-form-xxx', 'mail_delete_blank', 10, 3); //自動送信メール

もっといいやり方がないかなと思いましたが、「MW WP Formで値が空の場合は、メール本文から消す」という目的は達成できたので合格です。

エクセルやスプレッドシートの関数(concatenate)を使って作っているので、商品の個数分行数が増える。値を入力するとfunction.php、MW WP Form内に記載するコードがconcatenateされて出てくるので、何店舗もある得意先用のフォームを作るのも楽になる。

1店舗当たり20分くらいでフォームが完成する。※もちろん発注書のデータはエクセルでもらうようにしています。

カテゴリー : oolog ホームページ制作

Area

活動エリア

下記のエリアを中心に活動しています。

大阪府

京都府

兵庫県

  • 尼崎市
  • 伊丹市

奈良県