MW WP Formで未入力の項目がある場合、自動メール本文の項目を非表示にする方法

MW WP Formで未入力の項目がある場合、自動メール本文の項目を非表示にする方法
画像出典:WordPress

WordPressのプラグイン「MW WP Form」で未入力の項目があった場合、管理者宛メールとユーザーへの自動送信メールの本文の項目を非表示にする方法について紹介します。

目次

解決したい内容

MW WP Formの自動メール設定にはユーザーが入力した情報を、メール本文に出力できる機能があります。

入力必須の項目であれば、メール本文に出力させるのが一般的ですが、任意の項目が未入力だった場合はメール本文から項目ごと非表示したい時があります。

未入力だった場合にメール本文から非表示にする方法

下記のコードをfunctions.phpに追記してください。

function my_mail( $mail_raw, $values, $data ) {
  if ( $values['非表示にしたいフォームのname属性'] == '' ) {
    $mail_raw->body = str_replace( '【項目名】{非表示にしたいフォームのname属性}'."\r\n", '', $mail_raw->body ); //未入力だった場合に非表示にする
  }
  return $mail_raw;
}
add_filter( 'mwform_admin_mail_raw_mw-wp-form-xxx', 'my_mail', 10, 3); //管理者宛メール
add_filter( 'mwform_auto_mail_raw_mw-wp-form-xxx', 'my_mail', 10, 3); //自動送信メール

上記のコードは$values['非表示にしたいフォームのname属性']に、非表示にさせたいフォームのname属性を入れ、この項目が未入力だった場合に、メール本文を書き換える処理をしています。

例えば名前を入力するテキストフォーム(input type="text")のname属性が「name」だった場合は、$values['name']と書きます。

if文の条件式はフォームの内容に沿って適宜変更してみてください。

「mwform_admin_mail_raw_mw-wp-form-xxx」と「mwform_auto_mail_raw_mw-wp-form-xxx」の「xxx」の部分はMW WP Formの該当フォームの識別子コードを入力してください。

このコードをfunctions.phpに記入すると、未入力があった場合にメール本文から該当の項目ごと非表示になります。

参考URL
mw-wp-formフォームについて
mwform_auto_mail_raw_mw-wp-form-xxx

目次