サポート » プラグイン » MW WP Formで入力がない項目を自動返信メールから削除したい

  • 解決済 takaraism

    (@takaraism)


    WordPress 5.7.2の環境でMW WP Formの4.4.0を導入しています。
    上記プラグインを使ったフォームからお問い合わせメールが飛ぶ動作は確認できています。
    (フォーム画面、確認画面、エラー画面、送信完了画面はすべて別々の固定ページで作っています)

    その中で必須じゃない項目に入力しなかった場合、
    自動返信メールに未入力の項目があるのが気になるので
    未入力項目は一行無くならないかと考えています。

    ▼フォームの入力側
    ■性別 : 男
    ■年齢 : (未入力)
    ■ご住所 : 〒123-4568

    ▼それを受けての希望の自動返信メールの内容
    ■性別 : 男
    ■ご住所 : 〒123-4568

    色々調べてみて、以下のページにある「郵便番号[zip]が入力されていたときは住所[address]をメール本文に追加し、電話番号[tel]が入力されていたときだけ電話番号[tel]を表示してみます。」のサンプルを元にfunctions.phpに設定してみたのですが、ブラウザを変えたりなどキャッシュ対策を行いながらテストしているのですが表示されてしまいます。

    https://illbenet.jp/view/wp-mwform_auto_mail

    設定している入力フォームは

    性別
    [mwform_radio name="contact_seibetsu" children="男性,女性"]
    
    年齢
    [mwform_text name="contact_age" maxlength="10" placeholder="例)20"]

    となっており、自動返信メールの設定は

    ■性別 : {contact_seibetsu}
    ■年齢 : {contact_age}

    と書いています。
    ※入力がある場合はちゃんと入力内容が表示されます。

    functions.phpには

    function my_mail( $Mail, $values, $Data ) {
        if ($Data->get( 'contact_seibetsu' )){
            $Mail->body .= "■性別 : ".$Data->get( 'contact_seibetsu' )."\r";
        }
        if ($Data->get( 'contact_age' )){
            $Mail->body .= "■年齢 : ".$Data->get( 'contact_age' )."\r";
        }
        return $Mail;
    }
    add_filter( 'mwform_admin_mail_mw-wp-form-xxx', 'my_mail', 10, 3 );

    と記載しています。(キーのxxxはフォームの内容に沿って入力しています)

    contact_**をcontact-**に変更したり、「■年齢 : 」から半角スペースを抜いたりしましたが、状況は変わりません。

    記述している内容で問題があるかご教授いただけたら幸いです。
    よろしくお願いいたします。

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • こんにちは

    mw-wp-formフォームについて | WordPress.org 日本語」トピックは参考になりませんか?

    トピック投稿者 takaraism

    (@takaraism)

    >ishitaka様

    ご回答ありがとうございます。
    ご案内頂いたトピックス(見落としてたようです)を参考に

    function my_mail( $mail_raw, $values, $data ) {
    	if ( $values['contact_age'] == 0 ) {
    		$mail_raw->body = str_replace( '■年齢:{contact_age}'."\r\n", '', $mail_raw->body );
    	}
    	return $mail_raw;
    }
    add_filter( 'mwform_auto_mail_raw_mw-wp-form-xxx', 'my_mail', 10, 3 );
    add_filter( 'mwform_admin_mail_raw_mw-wp-form-xxx', 'my_mail', 10, 3 );

    と指定したら、無事一行カットで管理者&自動返信共に非表示にする事が出来ました。
    これをもとにラジオボタンやチェックボックス、テキストエリアなども設定する事が出来ました。
    str_replaceの所は半角スペースなどもきっちり判定するのですね・・・
    {contact_age}の後ろに半角スペースが入っているのに気づかずにウンウン唸ってました。

    ご教授いただきありがとうございました。

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • トピック「MW WP Formで入力がない項目を自動返信メールから削除したい」には新たに返信することはできません。