如何在结账时检查 WooCommerce 中的产品是否应用了任何优惠券?
我看到的所有内容都会检查 ID 或 slug 或它们的数组,但我想根据是否有优惠券或任何优惠券在结帐时调整一些字段。
提前致谢。
如果您想检查特定优惠券,@Reigel 的答案就是解决方案。但是,要检查是否已应用任何优惠券,以下代码将完成工作。
if( WC()->cart->get_coupons() ) echo "Coupon applied";
您可以使用购物车的
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
}