WCEX Auto DeliveryとWCEX Multiple Shippingの併用について
-
投稿者投稿
-
2021年6月11日 9:35 PM #937465io参加者
お世話になっております。
WCEX Multiple Shippingを使っており、その上で送料計算をフィルターフックでカスタマイズしています。
この状態でWCEX Auto Deliveryを追加して定期購入と複数配送先指定の機能を併用した状態で運用予定です。送料計算は「usces_filter_set_cart_fees_shipping_charge」フックを使って独自の送料計算をしています。
この状態でWCEX Auto Deliveryをインストールして多少カスタマイズし定期購入をテストしていたところ、
2回目以降の自動注文時の送料が0円になってしまう状態になりました。■調べた結果
Multiple Shippingも上記フィルターに関数「msa_filter_set_cart_fees_shipping_charge」をフックしているようでした。この関数には以下の1行があるのですが、
$shipping_charge = $usces->getShippingCharge( $entries['delivery']['pref'] );
getShippingCharge
は第2、第3引数で$cart情報と$entry情報を受け持っています。
この引数がない場合、内部的にcartとentryを取得する関数を実行して補っているようです。以下のように:
if( empty($cart) )
$cart = $this->cart->get_cart();if( empty($entry) )
$entry = $this->cart->get_entry();しかし、定期購入の2回目以降だと「get_cart()」「get_entry()」で情報取得が出来ていなく、これが原因で送料計算が出来ていないようでした。
定期購入プラグインではこの問題をプログラムによるcart作成処理で補っているようでした。(functions/function.phpの「//Make cart」というコメントがある箇所)不具合と断定できない調査途中の投稿で恐れ入ります。
——————————————-
WordPress のバージョン: 5.7.2
Welcart のバージョン: 2.2.1
PHP のバージョン: 7.4.13
Welcart専用の拡張プラグインとバージョン: WCEX Auto Delivery 1.2.3, WCEX Multiple Shipping 1.2.0
ご利用のテーマ:自作テーマ
症状を確認したブラウザ: Chrome
サーバー【重要】: Xserver
——————————————–2021年6月14日 10:24 AM #93763sagawaキーマスターこんにちは。
WCEX Auto Deliveryを追加して定期購入と複数配送先指定の機能を併用した状態で運用予定
「WCEX Multiple Shipping」で指定した配送先に、定期購入商品を配送する運用をされたいとのことですが、マニュアルにもあります通り、こちらの運用はできません。
https://www.welcart.com/docs/AutoDelivery/caution.html2021年6月14日 11:42 AM #937735io参加者ご回答ありがとうございます。
定期購入時に復数配送先指定は必要ないのですが、2つのプラグインを同時に有効化すること自体サポート対象外、という認識で間違いないでしょうか?
定期購入商品がカートにあると復数配送先指定ができなくなるまでは問題ないのですが、上述のフィルターフックにより2回目以降の自動注文時の送料が0円になると見ております。
2021年6月14日 11:55 AM #937745io参加者連投失礼いたします。
補足になります。2回目の自動注文時に復数配送先指定の送料計算関数が動き、この関数内でカート情報が取得できない、という処理のように見えるのでフィルターフックは関係無いかもしれません。
カート情報を取得できない場合はプログラムで擬似的にカート情報を作成する、という形で処理予定です。
2021年6月15日 3:48 AM #937845io参加者調査の進捗です。
2回目の自動注文時の送料計算の問題は、$cart変数ではなく$entry変数が設定できていないようでした。「usces_filter_getShippingCharge」フィルターを使い以下の内容で処理を作成予定です。
■「empty($entry[‘order’][‘delivery_method’])」などentry変数の中身が空だと送料計算がされないので、空の場合に処理を追加する。
↓
1.$cart変数の”regdet_post_id”を元に”usces_regular_detail”テーブルから定期購入履歴を取得
2.この情報を元に$entry変数を生成
3.生成した$entryを元に改めてgetShippingChargeの処理を記述する2021年6月15日 10:15 AM #93788sagawaキーマスター5io様
定期購入時に復数配送先指定は必要ないのですが、2つのプラグインを同時に有効化すること自体サポート対象外、という認識で間違いないでしょうか?
おっしゃる通りサポート対象外となります。
2021年6月15日 4:51 PM #938055io参加者ご回答ありがとうございます。
承知しました。
カスタマイズを進めてみます。 -
投稿者投稿
- このトピックに返信するにはログインが必要です。