• gptamago

    (@gptamago)


    MW WP Formプラグインについて質問させてください。

    Contact Form 7 にある
    「空のメールタグを含む行を出力から除外する」機能を
    MW WP Formに設定することは可能でしょうか?

    もし可能でしたら方法を教えて下さい。

6件の返信を表示中 - 1 - 6件目 (全6件中)
  • ishitaka

    (@ishitaka)

    こんにちは

    「空のメールタグを含む行を出力から除外する」ような設定はないようです。

    PHP コードを書くことになると思います。具体的には、wp_mail フィルターフックmwform_auto_mail_raw_mw-wp-form-xxx フィルターフックで、メールの本文 (message) を置換するなどかなと思います。

    ishitaka

    (@ishitaka)

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

    “\r\n” ではどうでしょうか?

    ishitakaさん、

    “\r\n” で解決しました!
    早速のご回答、ありがとうございました!!

6件の返信を表示中 - 1 - 6件目 (全6件中)
  • トピック「mw-wp-formフォームについて」には新たに返信することはできません。