カート内の総数量から特定の商品の数量を差し引いた値を取得したい

フォーラム 使い方全般 カート内の総数量から特定の商品の数量を差し引いた値を取得したい

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

    ——————————————-
    WordPress のバージョン:5.4.2
    Welcart のバージョン:1.9.32
    PHP のバージョン:7.3.16
    Welcart専用の拡張プラグインとバージョン:WCEX Widget Cart 1.1.8
    ご利用のテーマ:WelcartBasic の子テーマカスタマイズ
    症状を確認したブラウザ:
    サーバー:エックスサーバー
    SSLの利用:常時SSL
    ——————————————–
    お世話になります。

    現在カート内の数量に応じたキャンペーン値引を行って運用してます。
    ※キャンペーン対象になる商品SKUを指定し、その商品がカートに入っている場合は合計5個でキャンペーン割引500円、10個以上で1000円引など。

    ※以下ソース
    add_filter(‘usces_order_discount’, ‘special_order_discount’, 10, 2);
    function special_order_discount($discount, $carts){
    global $usces;
    $options=get_option(‘usces’);
    $sku_campaign = array(‘test-01′,’test-02’);
    foreach( $carts as $cart ){
    $skus[] = $cart[‘sku’];
    }
    $matches = array_intersect( $sku_campaign, $skus );
    $total_items_quantity = $usces->get_total_quantity();
    if ((5 <= $total_items_quantity) && ($total_items_quantity < 10)){
    $discount = -500;
    }
    if($total_items_quantity >= 10){
    $discount = -1000;
    }
    return $discount;
    }

    ただしこの方法ではキャンペーン対象外の商品が同時にカートに投入された場合でもカート内の総数にカウントされてしまいキャンペーン割引に反映してしまいます。

    そこでキャンペーン対象にならない商品のSKUを指定してカート内の個数を取得させ、全商品の総個数からその分を減算した値を$total_items_quantityのところに反映させたいのですがうまくいきません。

    何か良い方法をご教授いただけないでしょうか。

    宜しくお願い致します。

    #90755
    yasumax
    キーマスター

    こんにちは。

    フォーラムではコードの提供は行っていませんのでご了承ください。
    まず、キャンペーン対象になっているカテゴリーを取得する必要があると思います。
    その後カート投入されている商品がそのカテゴリーに属しているかどうかを判断して個数をカウントしてみてはいかがでしょうか。

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