具有定制价格的购物车物品的Woocommerce优惠券代码

时间:2018-01-29 09:16:00

标签: php wordpress woocommerce

虽然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' );

     } 
}
}

还有其他更有效的解决方案,因为当生成越来越多的优惠券时,这种解决方案永远不可信任吗?

1 个答案:

答案 0 :(得分:0)

事实证明,我需要做的就是更新fluidRow文件。尽管我的文件和Github文件都将优惠券验证码显示为3.2.0,但在计算小计时它们似乎有所不同。