检查是不是在 woocommerce 中应用了任何优惠券代码
Posted
技术标签:
【中文标题】检查是不是在 woocommerce 中应用了任何优惠券代码【英文标题】:Check if ANY coupon code is applied in woocommerce检查是否在 woocommerce 中应用了任何优惠券代码 【发布时间】:2016-05-12 05:00:05 【问题描述】:如何在结帐时检查是否有任何优惠券应用于 woocommerce 中的产品?
我看到的所有内容都会检查 ID 或 slug 或它们的数组,但我想在结帐时根据是否有优惠券、任何优惠券来调整某些字段。
提前致谢。
【问题讨论】:
【参考方案1】:如果您想查看特定优惠券,@Reigel 的答案就是解决方案。但是,要检查是否已应用任何优惠券,以下代码将完成工作。
if( WC()->cart->get_coupons() ) echo "Coupon applied";
【讨论】:
这行得通。我还尝试了@Reigel,它也有效。谢谢你们。【参考方案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
【讨论】:
这不检查特定的优惠券(即'test1'优惠券)吗?我不需要这么具体的东西。 啊,是的,对不起,但是有人已经建议了WC()->cart->get_coupons()
,这是正确的以上是关于检查是不是在 woocommerce 中应用了任何优惠券代码的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Woocommerce 中检查产品是不是具有特定的产品属性
检查 WooCommerce 是不是处于活动状态以及使用的版本