> Wordpress > MW WP Form で入力された内容によって自動返信メールや管理者宛メールの内容を変更する方法
MW WP Form で入力された内容によって自動返信メールや管理者宛メールの内容を変更する方法

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 );

解説:MW WP Form マニュアル

※[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 );

解説:MW WP Form マニュアル

※[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は他にもバリデーションルールを入力された値によって変更できるなど、本当にいろんなことができるメールフォームです。
公式サイトが既に詳しく説明してくれているので、そちらをくまなく見れば大抵のことは可能です。

このブログでも実際の使用例を含めて紹介していきたいと思います。

この記事が気に入ったらシェアしてください

関連記事

Wordpressのカスタム投稿タイプで一覧・詳細画面を作らない方法

Wordpressのプラグイン「AddToAny Share Buttons」で任意の場所にシェアボタンを設置する方法

Wordpressのプラグイン「AddToAny Share Buttons」で任意の場所にシェアボタンを設置する方法

Wordpress Popular Postsでの表示内容をテーマ内でカスタマイズする方法

Wordpress Popular Postsでの表示内容をテーマ内でカスタマイズする方法

Wordpressの投稿からカテゴリーやタグを削除する方法

Wordpressの投稿からカテゴリーやタグを削除する方法

Wordpressで記事のIDから記事内の一番目にある画像を取得する関数

Wordpressで記事のIDから記事内の一番目にある画像を取得する関数

Wordpressのget_terms()で特定のカスタム投稿タイプの公開記事のみcountの対象にする方法

Wordpressのget_terms()で特定のカスタム投稿タイプの公開記事のみcountの対象にする方法

Comment Form

コメント投稿はこちらをクリックしてください
  • コメントを入力してください。
登録フォーム
Name
Mailaddress
URL
Message
Postkey
(スパム対策に、投稿キー を半角で入力してください。)