pppbbb

動作の不具合の検証には環境情報が必要です。投稿の際は下記の情報をお書き添えください。
-------------------------------------------
WordPress のバージョン:(例 5.6)
Welcart のバージョン:(例 2.1.1)
PHP のバージョン:(例 7.4)
Welcart専用の拡張プラグインとバージョン:(例 DL Seller 3.0.8、SKU Select 1.1.4)
ご利用の親テーマとバージョン :(例 Welcart Basic 1.4.0)
ご利用の子テーマとバージョン :(例 Welcart Beldad 1.1 )
症状を確認したブラウザ:
サーバー【重要】:(会社名、サービス名)
--------------------------------------------

フォーラムへの返信

2件の投稿を表示中 - 1 - 2件目 (全2件中)
  • 投稿者
    投稿
  • 返信先: 複数商品での業務パック割引の適用 #92403
    pppbbb
    参加者

    一応、自己解決できましたので共有させていただきます。

    カートに入れたタイミングだけでなく、カート内商品を削除のタイミングでも単価の再計算の必要がありました。
    ですので、usces_action_after_inCartusces_action_after_cart_del_rowフックを用いて、get_cart()を参考にセッションに保存されている単価を上書きできるようにしました。

    以下がフックした処理です。

    global $usces;
    foreach( $_SESSION['usces_cart'] as $serial => $qua ) {
    	$row = $usces->cart->key_unserialize( $serial );
    	$post_id = $row['post_id'];
    	$sku = $row['sku'];
    	$price = $usces->cart->get_realprice( $post_id, $sku, $_SESSION['usces_cart'][$serial]['quant'] );
    	$_SESSION['usces_cart'][$serial]['price'] = $price;
    }

    ポイントはシリアライズされた$serialを配列のキーとしてそのまま使用することです。
    get_cart()だとアンシリアライズされているため、使用しませんでした。
    ※もし解釈が間違っていたら申し訳ありません。

    ただ、カート内で試しただけですので、受注リスト等で上手く処理されるかはわかりません。ご注意ください。

    pppbbb
    参加者

    ご返信ありがとうございます。
    ご対応お待ちしています。

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