检查 WooCommerce 中是否应用了任何优惠券代码

问题描述 投票:0回答:2

如何在结账时检查 WooCommerce 中的产品是否应用了任何优惠券?

我看到的所有内容都会检查 ID 或 slug 或它们的数组,但我想根据是否有优惠券或任何优惠券在结帐时调整一些字段。

提前致谢。

wordpress woocommerce conditional-statements checkout
2个回答
10
投票

如果您想检查特定优惠券,@Reigel 的答案就是解决方案。但是,要检查是否已应用任何优惠券,以下代码将完成工作。

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

4
投票

您可以使用购物车的

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
}
© www.soinside.com 2019 - 2024. All rights reserved.