woocommerce折扣购物车没有使用add_fee方法



问题:

我想动态地重新定价购物车,而不重新定价商品,为客户提供一个或多个折扣。

我也问了chatgpt,但解决方案不是很好,我使用add_fee方法得到了提示。

以下是我发现的3种解决方案和副作用:

1。我找到的一些解决方案只适用于商品价格问题:用户没有意识到自己少付了钱

2。: add_fee带负数的方法问题:不推荐Woo和case vat问题

3。:创建一个负值的条目问题:不要使用百分比,如果折扣大于购物车,也有增值税问题

我在WOO代码中进行了一些研究后找到了解决方案,我希望它能帮助别人。

discount_type还可以:fixed_cart和根据购物车的值减少购物车。

例如:产品€500,优惠券€1000,只减少€500,订单可以免费完成。

Woocomerce有一个名为"woocommerce_get_shop_coupon_data"的过滤器;通过这个过滤器,我们可以在飞行中提供自己的优惠券,这些优惠券每次都要检查。

add_filter('woocommerce_get_shop_coupon_data', 'create_discount_code', 10, 3);
function create_discount_code($coupon_data, $code, $obj)
{
$cartValue = WC() && WC()->cart ? WC()->cart->get_displayed_subtotal() : 0;



if ($code == "menge") {

if ($cartValue > 1500) {
return array(
'code'          => 'menge',
'discount_type' => 'percent',
'amount'        => 30,
);
} else if ($cartValue > 1000) {
return array(
'code'          => 'menge',
'discount_type' => 'percent',
'amount'        => 20,
);
} else if ($cartValue > 500) {
return array(
'code'          => 'menge',
'discount_type' => 'percent',
'amount'        => 10,
);
}
else{
return false;
}

}
}
add_action( 'woocommerce_cart_updated', 'update_cart_func' );
function update_cart_func() {
if ( !WC()->cart->has_discount( 'menge' )  && WC()->cart->get_displayed_subtotal() > 500) {
WC()->cart->apply_coupon( "menge" );
}

}

相关内容

  • 没有找到相关文章

最新更新