Php Woocommerce:产品附加价格不适用优惠券折扣
我有一个相当不寻常的问题 在一个同样使用Woocommerce预订和Woocommerce产品附加组件插件的Woocommerce中,我想设置仅适用于基本产品价格而不适用于附加组件的优惠券 例如,如果我的基本可预订产品的成本为100美元,并且用户选择了一个成本为20美元的附加组件,并应用了一个提供10%折扣的优惠券,那么我希望折扣为10美元,而不是12美元 我在functions.php中编写了以下代码,但由于某些原因,最终价格正在重新计算,它显示的不是所需的110美元,而是108美元,并且向银行发送了错误的号码Php Woocommerce:产品附加价格不适用优惠券折扣,php,woocommerce,Php,Woocommerce,我有一个相当不寻常的问题 在一个同样使用Woocommerce预订和Woocommerce产品附加组件插件的Woocommerce中,我想设置仅适用于基本产品价格而不适用于附加组件的优惠券 例如,如果我的基本可预订产品的成本为100美元,并且用户选择了一个成本为20美元的附加组件,并应用了一个提供10%折扣的优惠券,那么我希望折扣为10美元,而不是12美元 我在functions.php中编写了以下代码,但由于某些原因,最终价格正在重新计算,它显示的不是所需的110美元,而是108美元,并且向银
add_action( 'woocommerce_calculate_totals', 'CouponIgnoreAddons' );
function CouponIgnoreAddons($cart_object) {
global $woocommerce;
if (isset($cart_object->applied_coupons) && $cart_object->applied_coupons[0] != "") {
$coupon_code = $cart_object->applied_coupons[0];
$c = new WC_Coupon($coupon_code);
$new_total = 0;
$new_subtotal = 0;
$coupon_discount_totals = 0;
foreach ($cart_object->cart_contents as $cart_item_key => $cart_item ) {
if ($c->discount_type == 'percent') {
$new_total += $cart_item['addons_price_before_calc'] - ($cart_item['addons_price_before_calc'] * $c->amount / 100) + $cart_item['addons'][0]['price'] + $cart_item['addons'][1]['price'];
$new_subtotal += $cart_item['addons_price_before_calc'] + $cart_item['addons'][0]['price'] + $cart_item['addons'][1]['price'];
$coupon_discount_totals += ($cart_item['addons_price_before_calc'] * $c->amount / 100);
}
}
$cart_object->coupon_discount_totals[$coupon_code] = $coupon_discount_totals;
$cart_object->discount_total = $coupon_discount_totals;
$cart_object->set_total('discounts_total',$coupon_discount_totals);
$cart_object->set_discount_total($coupon_discount_totals);
$cart_object->cart_contents_total = $new_total;
}
}
我有外接程序[0]和[1],因为这些外接程序是标准的,并且它们的数量是2
有人有不同的想法或想法吗
多谢各位