虽然WooCommerce允许您在使用"woocommerce_before_calculate_totals"
将产品添加到购物车时获得产品的自定义价格,但系统仍会使用原始价格计算小计,同时根据购物车总数检查优惠券代码
当优惠券代码必须处理超过特定金额的订单时,这会产生问题。如果原始价格低于要求的小计,即使自定义价格对要约有效,优惠券也会产生错误。
我无法找到一个合适的钩子来改变行为,但我设法通过创建一个像下面这样的新功能暂时修复它。它会检查优惠券代码并在小计超过所需金额时将其删除,在这种情况下为2999。
add_action( 'woocommerce_before_cart', 'apply_matched_coupons' );
function apply_matched_coupons() {
global $woocommerce;
$coupons = $woocommerce->cart->get_applied_coupons();
if(in_array('yourcoupon', $woocommerce->cart->get_applied_coupons())){
$cart_subtotal = $woocommerce->cart->subtotal;
if ($cart_subtotal < 2999) {
$removeCoupon = WC()->cart->remove_coupon( 'yourcoupon');
$something = wc_print_notice( __( 'Minimum spend is Rs. 2999', 'woocommerce' ), 'notice' );
}
}
}
还有其他更有效的解决方案,因为当生成越来越多的优惠券时,这种解决方案永远不可信任吗?
答案 0 :(得分:0)
事实证明,我需要做的就是更新fluidRow
文件。尽管我的文件和Github文件都将优惠券验证码显示为3.2.0,但在计算小计时它们似乎有所不同。