サポート » プラグイン » Trust Form利用時にメール本文の文字コードを変更したい

  • 解決済 3aworks

    (@3aworks)


    Trust Form を利用させていだいております。
    現在5ヶ国語対応のサイトを制作しており、マルチ言語の対応は「mqTranslate」を使用して対応しているのですが、通常ではメール本文の設定が「ISO-2022-JP」のままですので、「utf-8」に変更したいと思っています。

    下記のようにadd_filterでwp_mail_charsetの値を変更しようとしたのですが、効きませんでした。

    add_filter( 'wp_mail_charset', 'change_mail_charset' );
    function change_mail_charset( $charset ) {
    	return 'utf-8';
    }

    恐らくですが、同プラグイン内の「function _send_user_mail」内での処理を編集すれば対応できそうなのですが、どこを編集すれば良いのかお手上げです。

    どなたかご教授頂けないでしょうか?
    よろしくお願いします。

    [trust-form.php内 function _send_user_mail()]

    private function _send_user_mail( $id, $data, $to ){
    		$data['data'] = apply_filters( 'tr_pre_auto_reply_mail', $data['data'], $id );
    		$body = '';
    		foreach ( $data['data'] as $key => $res ) {
    			if ( $key == 'date' ) {
    				$body .= __( 'Date', TRUST_FORM_DOMAIN ).': '.$res."\n\n";
    			} else {
    				if ( isset($data['title'][$key]) ) {
    					$body .= $data['title'][$key].': '.$res."\n\n";
    				}
    			}
    		}
    		$body = str_replace( '[FORM DATA]', $body, $this->user_mail[0]['message2'] );
    
    		foreach ( $data['data'] as $key => $res ) {
    			$body = str_replace( '['.$key.']', $res, $body );
    		}
    
    		foreach ( $this->name[0] as $key => $name ) {
    			if ( preg_match('/['.$name.']/i', $body) ) {
    				if ( isset($data['data'][$key]) )
    					$body = str_replace( '['.$name.']', $data['data'][$key], $body );
    			}
    		}
    
    		$subject = $this->user_mail[0]['subject2'];
    		foreach ( $this->name[0] as $key => $name ) {
    			if ( preg_match('/['.$name.']/i', $subject) ) {
    				if ( isset($data['data'][$key]) )
    					$subject = str_replace( '['.$name.']', $data['data'][$key], $subject );
    			}
    		}
    		$subject = apply_filters( 'tr_pre_auto_reply_mail_subject', $subject, $data['data'], $id );
    		$body = apply_filters( 'tr_pre_auto_reply_mail_body', $body, $data['data'], $id );
    
    		wp_mail( $to, $subject, $body );
    		do_action( 'trust_form_sent_auto_reply_mail', $data, $id, $to );
    	}

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • モデレーター JOTAKI, Taisuke

    (@tai)

    WP Multibyte Patchプラグインは有効になってますか?

    有効になっているのであれば、同梱のwpmp-config-sample-ja.phpを参考にメールの文字コードを指定してみてください。

    トピック投稿者 3aworks

    (@3aworks)

    上滝様

    早速のご回答いただきありがとうございます。

    教えて教えていただいた通り、
    /wp-content/wpmp-config.phpを作成し、

    $wpmp_conf['mail_mode'] = 'UTF-8';

    を記述したところ正常にメールの文字コードが変更されました。

    問題なく解決できましたのでトピックを解決済みにしたいと思います。
    誠にありがとうございました。

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • トピック「Trust Form利用時にメール本文の文字コードを変更したい」には新たに返信することはできません。