こんにちは
「空のメールタグを含む行を出力から除外する」ような設定はないようです。
PHP コードを書くことになると思います。具体的には、wp_mail フィルターフック や mwform_auto_mail_raw_mw-wp-form-xxx フィルターフックで、メールの本文 (message) を置換するなどかなと思います。
mwform_auto_mail_raw_mw-wp-form-xxx フィルターフックによる、サンプルコードを書いてみました。
function my_mail( $mail_raw, $values, $data ) {
if ( empty( $values['題名'] ) ) {
$mail_raw->body = str_replace( '題名: {題名}', '', $mail_raw->body );
}
return $mail_raw;
}
add_filter( 'mwform_auto_mail_raw_mw-wp-form-123', 'my_mail', 10, 3 );
ishitakaさんありがとうございます。
質問者ではありませんが、サンプルコードを参考に対応し、メールに値が0のメールタグを含む行を表示させないようにすることができました。
ただ、下記のように改行が残ってしまいます。
改行を削除するにはどうしたらいいでしょうか?
■修正前
注文内容:
タグA : 0個
タグB : 1個
タグC : 0個
タグD : 1個
■修正後
注文内容:
タグB : 1個
タグD : 1個
function my_mail( $mail_raw, $values, $data ) {
if ( $values['tagA'] == 0 ) {
$mail_raw->body = str_replace( ' タグA : {tagA}個', '', $mail_raw->body );
}
if ( $values['tagB'] == 0 ) {
$mail_raw->body = str_replace( ' タグB : {tagB}個', '', $mail_raw->body );
}
if ( $values['tagC'] == 0 ) {
$mail_raw->body = str_replace( ' タグC : {tagC}個', '', $mail_raw->body );
}
if ( $values['tagD'] == 0 ) {
$mail_raw->body = str_replace( ' タグD : {tagD}個', '', $mail_raw->body );
}
return $mail_raw;
}
add_filter( 'mwform_admin_mail_raw_mw-wp-form-000', 'my_mail', 10, 3 );
下記のように.”\n” をつけてみましたが、認識されませんでした。
function my_mail( $mail_raw, $values, $data ) {
if ( $values['tagA'] == 0 ) {
$mail_raw->body = str_replace( ' タグA : {tagA}個'."\n", '', $mail_raw->body );
}
if ( $values['tagB'] == 0 ) {
$mail_raw->body = str_replace( ' タグB : {tagB}個'."\n", '', $mail_raw->body );
}
if ( $values['tagC'] == 0 ) {
$mail_raw->body = str_replace( ' タグC : {tagC}個'."\n", '', $mail_raw->body );
}
if ( $values['tagD'] == 0 ) {
$mail_raw->body = str_replace( ' タグD : {tagD}個'."\n", '', $mail_raw->body );
}
return $mail_raw;
}
add_filter( 'mwform_admin_mail_raw_mw-wp-form-000', 'my_mail', 10, 3 );
ishitakaさん、
“\r\n” で解決しました!
早速のご回答、ありがとうございました!!