2016-02-03 69 views

回答

3

如果你想檢查一個特定的優惠券,@ Reigel的答案是解決方案。然而,要檢查是否應用了任何優惠券,以下代碼將完成工作。

if(WC()->cart->get_coupons()) echo "Coupon applied"; 
+1

ahaha混淆了那個'ANY'部分...不是我的母語... – Reigel

+0

這工作。我也試過@Reigel,這也工作。感謝你們兩位。 – Torque2

2

您可以使用購物車的has_discount()功能..這需要優惠券代碼作爲參數。

使用這樣的:

if (WC()->cart->has_discount('test1')) { 
    // cart has coupon test1 applied 
} 

通過@Anand的建議,你可以使用WC()->cart->get_coupons()。如果購物車中有任何優惠券,將返回所有優惠券。

但是,由於我檢查了woocommerce插件源代碼,get_coupons()正在使用WP_Query。 如果沒有其他更好的方法,這真的沒什麼大不了的。

這是一個更好的方法。我們可以訪問購物車applied_coupons的公共變量。它包含應用於購物車的一系列優惠券代碼。我們可以像這樣使用它...

$has_coupons = count(WC()->cart->applied_coupons)>0?true:false; 
if($has_coupons) { 
    // cart has coupons 
} 
+0

這不檢查特定優惠券(即'test1'優惠券)嗎?我不需要任何特別的東西。 – Torque2

+0

ahh yes ,,,對不起,但有人已經建議'WC() - > cart-> get_coupons()'並且這是正確的 – Reigel

+0

更新了我的回答 – Reigel