2013-08-30 135 views
0

我目前正在开发用于woocommerce插件,并有以下的代码还增加了一个优惠码如果总的车是在两个值之间:woocommerce将车优惠券

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(); 
    } 
} 

以上工作正常但是我想,如果其他语句添加像这里面又增加了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语句只得到检测,完全无视第一个。有什么明显错误与上面?

回答

1

也许,如果你改变了两个单独的语句为IF,ELSEIF,否则 - 它会工作。

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(); 
    } 


}