如何检查结账时是否有任何优惠券适用于woocommerce中的产品?
我看到的所有内容都会检查ID或slug,或者其中的数组,但我想在结帐时调整一些字段,具体取决于是否有优惠券,任何优惠券。
提前致谢。
答案 0 :(得分:4)
如果您想查看特定优惠券,@ Reigel的答案就是解决方案。但是,要检查是否已应用任何优惠券,以下代码将完成工作。
if( WC()->cart->get_coupons() ) echo "Coupon applied";
答案 1 :(得分: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
}