[解決済み] usces_filter_send_order_mail_shippingをフックするとメールの「会社名」「部署名」が空欄となる。
フォーラム › テンプレート(テーマ) › [解決済み] usces_filter_send_order_mail_shippingをフックするとメールの「会社名」「部署名」が空欄となる。
- このトピックには3件の返信、2人の参加者があり、最後にdame1002により10年、 11ヶ月前に更新されました。
-
投稿者投稿
-
2013年9月17日 10:03 AM #54666dame1002参加者
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 );
===========================
以上です。
お忙しいところ大変申し訳ないのですが、ぜひ助けていただけると有難いです。
フックの使い方など私の勉強不足の部分もあると思いますので、ヒントだけでもいただけると幸いです。
宜しくお願いします。
2013年9月18日 1:42 AM #67630dame1002参加者こんにちは。
巧くいきましたので方法を記載します。
参考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で渡した。
有難う御座いました。
2013年9月23日 4:09 AM #67631nanbuキーマスターこんにちは。
そうですね。
$order_id は、$data でもOKです。
2013年9月24日 1:53 AM #67632dame1002参加者こんにちは。
nanbu様、詳細なアドバイス有難う御座います。
お忙しいにも関わらず、
こういうふうに補足いただけるというのはとても嬉しいです。
「解決詰み」に変更し忘れていましたので変更しました。
今後とも宜しくお願いいします。
有難う御座いました。
-
投稿者投稿
- このトピックに返信するにはログインが必要です。