カートページの手数料表記を書き換えると注文確認メールの手数料表記が空欄になる

2017 年 2 月 3 日

ホーム フォーラム 使い方全般 カートページの手数料表記を書き換えると注文確認メールの手数料表記が空欄になる

このトピックには2件の返信が含まれ、2人の参加者がいます。8 ヶ月、 2 週間前 Jimmys さんが最後の更新を行いました。

3件の投稿を表示中 - 1 - 3件目 (全3件中)
  • 投稿者
    投稿
  • #82009

    Jimmys
    参加者

    お世話になります。
    Welcartのカートページの手数料表記を、例えば下記のようにしたく、下記のコードを追加した所、カートの最終確認ページでは正しく書き換わるのですが、注文確認メールの手数料の表記が空欄になってしまいます。

    例)
    代引の場合 = 「代引手数料」と表記
    カードの場合 = 「カード利用手数料」と表記

    下記のコードが原因で注文確認メールの手数料部分が正しく渡っていないようです。

    function my_filter_cod_label() {
    	global $usces_entries;
    	if( $usces_entries['order']['payment_name'] == "代金引換" ) :
    		$text = "代引手数料";
        elseif( $usces_entries['order']['payment_name'] == "カード利用" ) :
    		$text = 'カード利用手数料';
    	endif;
    	
        return $text;
    }
    add_filter( 'usces_filter_cod_label', 'my_filter_cod_label' );

    ネットで調べた所、my_order_confirm_mail_meisai()フィルターを使って表記を書き換えられるとの記載があったため、追加してみましたが変更されませんでした。

    function my_order_confirm_mail_meisai( $meisai, $data, $cart ){
    	if( $data[order_payment_name] == "代金引換" ) :
    		$meisai .= "代引手数料\r\n";
    	elseif( $data[order_payment_name] == "カード利用" ) :
    		$meisai .= "カード利用手数料\r\n";
    	endif;
    	return $meisai;
    }
    add_filter( 'usces_filter_send_order_mail_meisai’,’my_order_confirm_mail_meisai', 10, 3 );

    何処かに記述に間違いがあれば教えていただけると幸いです。

    ——————————————-
    WordPress のバージョン:4.6.1
    Welcart のバージョン:1.9.0
    ご利用のテーマ:独自テーマ
    症状を確認したブラウザ:Mac Safari
    サーバー(会社名、サービス名):XSERVER
    SSLの利用:有り
    WordPress のパーマリンク設定:/%category%/%post_id%/
    ——————————————–

    何卒宜しくお願いいたします。

    #82035

    nanbu
    参加者

    こんにちは

    まず、フックはこちらです。
    usces_filter_send_order_mail_payment

    そして、$meisaiはペイメントの記述全てとなりますので、それでは正確には表示できません。
    ******/wp-content/plugins/usc-e-shop/functions/function.php でフックを探してみて下さい。

    #82040

    Jimmys
    参加者

    nanbuさま

    ご回答ありがとうございます。
    usc-e-shop/functions/function.phpの中身を確認した所、417行目にある下記のusces_filter_cod_labelをフックに使えば良いと考えました。

    if ( 0 < $entry['order']['cod_fee'] )
    	$meisai .= apply_filters('usces_filter_cod_label', __('COD fee', 'usces')) . " : " . usces_crform( $entry['order']['cod_fee'], true, false, 'return' ) . "\r\n";

    そこで下記のような記述をテーマファイル内のfunctions.phpにユーザー関数として追加しましたが、やはりメールの「手数料」の表記は空欄のままでした。
    注文確認メールの送料の下に記載される手数料の表記はこのフックではなくご指摘のusces_filter_send_order_mail_paymentで書き換える必要があるのでしょうか?

    function my_filter_cod_label() {
    	global $usces_entries;
    	
    	if( $usces_entries['order']['payment_name'] == "代金引換" ) :
    		$text = "代引手数料";
        elseif( $usces_entries['order']['payment_name'] == "カード利用手数料" ) :
    		$text = 'カード利用手数料(3%)';
    	endif;
    	
        return $text;
    }
    add_filter( 'usces_filter_cod_label', 'my_filter_cod_label' );

    宜しくお願いいたします。

3件の投稿を表示中 - 1 - 3件目 (全3件中)

このトピックに返信するにはログインが必要です。