应用购物车优惠券的woocommerce



我目前正在开发一个用于wooccommerce的插件,并且有以下代码,如果购物车的总数在2个值之间,则会添加折扣代码:

add_action('woocommerce_before_cart', 'woobd_add_discount_if_enabled');
function woobd_add_discount_if_enabled()
{
    global $woocommerce;
    if ($woocommerce->cart->cart_contents_total >= 10
        && $woocommerce->cart->cart_contents_total <= 100
    ) {
        $woocommerce->cart->add_discount('layer1_discount');
    } else {        
        $woocommerce->cart->remove_coupons('layer1_discount');
        $woocommerce->cart->calculate_totals();
    }
}

上面的工作原理很好,但是我想添加另一个if语句,它添加了另外2个值:

add_action('woocommerce_before_cart', 'woobd_add_discount_if_enabled');
function woobd_add_discount_if_enabled()
{
    global $woocommerce;
    if ($woocommerce->cart->cart_contents_total >= 10
        && $woocommerce->cart->cart_contents_total <= 100
    ) {
        $woocommerce->cart->add_discount('layer1_discount');
    } else {        
        $woocommerce->cart->remove_coupons('layer1_discount');
        $woocommerce->cart->calculate_totals();
    }
    if ($woocommerce->cart->cart_contents_total >= 100
        && $woocommerce->cart->cart_contents_total <= 200
    ) {
        $woocommerce->cart->add_discount('layer2_discount');
    } else {        
        $woocommerce->cart->remove_coupons('layer2_discount');
        $woocommerce->cart->calculate_totals();
    }
}

由于某种原因,第二个if语句只被检测到,而完全忽略了第一个。上面有什么明显的问题吗?

如果您将这两个单独的语句更改为if、elseif、else,它可能会起作用。

add_action('woocommerce_before_cart', 'woobd_add_discount_if_enabled');
function woobd_add_discount_if_enabled()
{
    global $woocommerce;
    if ($woocommerce->cart->cart_contents_total >= 10
        && $woocommerce->cart->cart_contents_total <= 100
    ) {
        $woocommerce->cart->add_discount('layer1_discount');
    } elseif ($woocommerce->cart->cart_contents_total >= 100
        && $woocommerce->cart->cart_contents_total <= 200
    ) {        
        $woocommerce->cart->add_discount('layer2_discount');
    } else {        
        $woocommerce->cart->remove_coupons('layer1_discount');
        $woocommerce->cart->remove_coupons('layer2_discount');
        $woocommerce->cart->calculate_totals();
    }

}

最新更新