[解決済み] usces_filter_send_order_mail_shippingをフックするとメールの「会社名」「部署名」が空欄となる。

フォーラム テンプレート(テーマ) [解決済み] usces_filter_send_order_mail_shippingをフックするとメールの「会社名」「部署名」が空欄となる。

  • このトピックには3件の返信、2人の参加者があり、最後にdame1002により10年、 7ヶ月前に更新されました。
4件の投稿を表示中 - 1 - 4件目 (全4件中)
  • 投稿者
    投稿
  • #54666
    dame1002
    参加者

    WordPress のバージョン:3.5.1

    Welcart のバージョン:1.3.2

    ご利用のテーマ:Welcart e-Commerce

    症状を確認したブラウザ:

    サーバー(会社名、サービス名):

    SSLの利用: 無し

    WordPress のパーマリンク設定:


    いつもお世話になっております。

    カスタマイズをしていたところ、想定した挙動にならずに困っています。ご質問をさせてください。

    【目的】

    注文時のメール「受注報告」「ご注文内容の確認」の「配送先」に記載されている「配送方法」を表示させないようにする。

    【フックしたソース】

    ============================

    add_filter(‘usces_filter_send_order_mail_shipping’, ‘my_usces_filter_send_order_mail_shipping’, 10, 2);

    function my_usces_filter_send_order_mail_shipping() {

    global $usces;

    $entry = $usces->cart->get_entry();

    $msg_shipping = __(‘** A shipping address **’,’usces’) . “rn”;

    $msg_shipping .= usces_mail_line( 1, $entry );//********************

    $msg_shipping .= uesces_get_mail_addressform( ‘order_mail’, $entry, $order_id );

    $msg_shipping .= __(‘Delivery date’,’usces’) . ” : ” . $entry . “rn”;

    $msg_shipping .= __(‘Delivery Time’,’usces’) . ” : ” . $entry . “rn”;

    $msg_shipping .= “rn”;

    return $msg_shipping;

    }

    ===========================

    【結果】

    「配送先」の「配送方法」は非表示となったが、「会社名」と「部署名」が空欄となってしまった。

    【切り分け】

    Pluginsのfunction.phpを下記のように直接修正した場合には、「配送方法」非表示となり「会社名」「部署名」が表示された。

    ============================

    $msg_shipping = __(‘** A shipping address **’,’usces’) . “rn”;

    $msg_shipping .= usces_mail_line( 1, $entry );//********************

    $msg_shipping .= uesces_get_mail_addressform( ‘order_mail’, $entry, $order_id );

    //20101208ysk start

    //$msg_shipping .= __(‘Delivery Time’,’usces’) . ” : ” . $entry . “rn”;

    $deli_meth = (int)$entry;

    /****ここからコメントアウトした******/

    // if( 0 <= $deli_meth ){

    // $deli_index = $usces->get_delivery_method_index($deli_meth);

    // if( 0 <= $deli_index ) $msg_shipping .= __(‘Delivery Method’,’usces’) . ” : ” . $usces->options[$deli_index] . “rn”;

    // }

    /****ここまでコメントアウトした******/

    $msg_shipping .= __(‘Delivery date’,’usces’) . ” : ” . $entry . “rn”;

    $msg_shipping .= __(‘Delivery Time’,’usces’) . ” : ” . $entry . “rn”;

    //20101208ysk end

    // $msg_body .= usces_mail_line( 2, $entry );//


    // $msg_body .= __(‘** For some region, to deliver the items in the morning is not possible.’,’usces’) . “rn”;

    // $msg_body .= ” ” . __(‘** WE may not always be able to deliver the items on time which you desire.’,’usces’) . “rn”;

    // $msg_body .= usces_mail_line( 2, $entry ).”rn”;//


    $msg_shipping .= “rn”;

    $msg_body .= apply_filters(‘usces_filter_send_order_mail_shipping’, $msg_shipping, $data);

    ===========================

    【原因予想】

    uesces_get_mail_addressform()に渡す$order_idが正しく渡せていないのではないかと考えています。

    ===========================

    $msg_shipping .= uesces_get_mail_addressform( ‘order_mail’, $entry, $order_id );

    ===========================

    以上です。

    お忙しいところ大変申し訳ないのですが、ぜひ助けていただけると有難いです。

    フックの使い方など私の勉強不足の部分もあると思いますので、ヒントだけでもいただけると幸いです。

    宜しくお願いします。

    #67630
    dame1002
    参加者

    こんにちは。

    巧くいきましたので方法を記載します。

    参考URL

    https://www.welcart.com/forum/topic.php?id=691#post-3123

    【修正前】

    $msg_shipping .= uesces_get_mail_addressform( ‘order_mail’, $entry, $order_id );

    【修正後】

    $msg_shipping .= uesces_get_mail_addressform( ‘order_mail’, $entry, $entry );

    【対処方法】

    $order_id を正しく渡せていなかったため、 $entryで渡した。

    有難う御座いました。

    #67631
    nanbu
    キーマスター

    こんにちは。

    そうですね。

    $order_id は、$data でもOKです。

    #67632
    dame1002
    参加者

    こんにちは。

    nanbu様、詳細なアドバイス有難う御座います。

    お忙しいにも関わらず、

    こういうふうに補足いただけるというのはとても嬉しいです。

    「解決詰み」に変更し忘れていましたので変更しました。

    今後とも宜しくお願いいします。

    有難う御座いました。

4件の投稿を表示中 - 1 - 4件目 (全4件中)
  • このトピックに返信するにはログインが必要です。