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