MW WP Form で入力された内容によって自動返信メールや管理者宛メールの内容を変更する方法
- 投稿日:2019/06/05
- Wordpress
- MW WP Form
Wordpressのメールフォームプラグインは色々ありますが、私はよくMW WP Formを利用させていただいています。
理由としては
- メールの送信確認画面を表示できる
- 管理画面上で簡単にフォームの部品を作成できる
- 様々なアクションフック・フィルターフックがありメール送信内容やバリデーションルールをカスタマイズできる
- 解説(公式サイト)が日本語でわかりやすい
などがあります。
今回は、MW WP Form で自動返信メールや管理者宛メールの内容を変更する方法をご紹介します。
管理画面上でできること
MW WP Form を既にインストールしフォームを作成できていることを前提に話を進めます。
MW WP Form では、フォームを作成すると、フォームの管理画面上で自動返信メールや管理者宛メールの設定を変更できます。
画像内の[本文]内に下記のように記述すると、フォームで作成した部品の値をメール本文に出力することができます。
名前[your_name]とメールアドレス[your_email]をフォームで作成していた場合
◎お名前 {your_name} ◎メールアドレス {your_email}
管理画面では、このように、メール本文に表示させたい項目を直接指定して出力できますが、条件分岐や計算などをしたい場合、function.phpでの変更が必要になります。
たとえば
- 「住所」が入力されていたときは「住所」を表示するが、無記入の場合はなにも表示しない
- 「郵便番号」が記載されていたときだけ「住所」も表示する
などです。
こういう場合は、以下に記載するようにfunction.phpを編集して対応しましょう。
function.phpでできること
自動返信メールの内容を変更する
自動返信メールの内容を変更したい場合、以下のフィルターフックを利用することができます。
mwform_auto_mail_mw-wp-form-xxx
/** * my_mail * @param object $Mail * @param array $values * @param MW_WP_Form_Data $Data */ function my_mail( $Mail, $values, $Data ) { // $Data->get( 'hoge' ) で送信されたデータが取得できます。 $Mail->to = 'hoge@example.jp'; // 送信先を変更 $Mail->from = 'hoge@example.jp'; // 送信元を変更 $Mail->sender = 'hoge'; // 送信者を変更 $Mail->subject = 'テストです'; // 件名を変更 $Mail->body = '本文だよ'; // 本文を変更 // $Mail->send(); で送信もできます。 return $Mail; } add_filter( 'mwform_auto_mail_mw-wp-form-xxx', 'my_mail', 10, 3 );
※[xxx]部分はフォームの識別子[mwform_formkey key="xxx"]
の「xxx」の部分の数字に変更しておいてください。
使用例
郵便番号[zip]が入力されていたときは住所[address]をメール本文に追加し、電話番号[tel]が入力されていたときだけ電話番号[tel]を表示してみます。
/** * my_mail * @param object $Mail * @param array $values * @param MW_WP_Form_Data $Data */ function my_mail( $Mail, $values, $Data ) { // $Data->get( 'hoge' ) で送信されたデータが取得できます。 if ($Data->get( 'zip' )){ $Mail->body .= "【郵便番号】".$Data->get( 'zip' )."\r"; $Mail->body .= "【住 所】".$Data->get( 'address' )."\r"; } if ($Data->get( 'tel' )){ $Mail->body .= "【電話番号】".$Data->get( 'tel' )."\r"; } return $Mail; } add_filter( 'mwform_auto_mail_mw-wp-form-xxx', 'my_mail', 10, 3 );
このようにすると、管理画面で設定した本文に、条件を指定した上で住所や電話番号を追加することができます。
※[xxx]部分はフォームの識別子[mwform_formkey key="xxx"]
の「xxx」の部分の数字に変更しておいてください。
管理者宛メールの内容を変更する
管理者宛メールの内容を変更したい場合、以下のフィルターフックを利用することができます。
mwform_admin_mail_mw-wp-form-xxx
/** * my_mail * @param object $Mail * @param array $values * @param MW_WP_Form_Data $Data */ function my_mail( $Mail, $values, $Data ) { // $Data->get( 'hoge' ) で送信されたデータが取得できます。 $Mail->to = 'hoge@example.jp'; // 送信先を変更 $Mail->from = 'hoge@example.jp'; // 送信元を変更 $Mail->sender = 'hoge'; // 送信者を変更 $Mail->subject = 'テストです'; // 件名を変更 $Mail->body = '本文だよ'; // 本文を変更 // $Mail->send(); で送信もできます。 return $Mail; } add_filter( 'mwform_admin_mail_mw-wp-form-xxx', 'my_mail', 10, 3 );
※[xxx]部分はフォームの識別子[mwform_formkey key="xxx"]
の「xxx」の部分の数字に変更しておいてください。
使用例
郵便番号[zip]が入力されていたときは住所[address]をメール本文に追加し、電話番号[tel]が入力されていたときだけ電話番号[tel]を表示してみます。
/** * my_mail * @param object $Mail * @param array $values * @param MW_WP_Form_Data $Data */ function my_mail( $Mail, $values, $Data ) { // $Data->get( 'hoge' ) で送信されたデータが取得できます。 if ($Data->get( 'zip' )){ $Mail->body .= "【郵便番号】".$Data->get( 'zip' )."\r"; $Mail->body .= "【住 所】".$Data->get( 'address' )."\r"; } if ($Data->get( 'tel' )){ $Mail->body .= "【電話番号】".$Data->get( 'tel' )."\r"; } return $Mail; } add_filter( 'mwform_admin_mail_mw-wp-form-xxx', 'my_mail', 10, 3 );
このようにすると、管理画面で設定した本文に、条件を指定した上で住所や電話番号を追加することができます。
※[xxx]部分はフォームの識別子[mwform_formkey key="xxx"]
の「xxx」の部分の数字に変更しておいてください。
最後に
MW WP Formは他にもバリデーションルールを入力された値によって変更できるなど、本当にいろんなことができるメールフォームです。
公式サイトが既に詳しく説明してくれているので、そちらをくまなく見れば大抵のことは可能です。
このブログでも実際の使用例を含めて紹介していきたいと思います。