——————————————-
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のところに反映させたいのですがうまくいきません。
何か良い方法をご教授いただけないでしょうか。
宜しくお願い致します。