Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wordpress 检查是否在woocommerce中应用了任何优惠券代码_Wordpress_Woocommerce_Conditional_Checkout - Fatal编程技术网

Wordpress 检查是否在woocommerce中应用了任何优惠券代码

Wordpress 检查是否在woocommerce中应用了任何优惠券代码,wordpress,woocommerce,conditional,checkout,Wordpress,Woocommerce,Conditional,Checkout,如何在结账时检查是否有优惠券应用于woocommerce中的产品 我看到的所有东西都会检查ID或slug,或者它们的数组,但我想根据是否有优惠券,任何优惠券,在结账时调整一些字段 提前感谢。您可以使用购物车的has\u折扣()功能。。这需要优惠券代码作为参数 像这样使用它: if (WC()->cart->has_discount('test1')) { // cart has coupon test1 applied } 按照@Anand的建议,您可以使用WC()->ca

如何在结账时检查是否有优惠券应用于woocommerce中的产品

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


提前感谢。

您可以使用购物车的
has\u折扣()
功能。。这需要优惠券代码作为参数

像这样使用它:

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

按照@Anand的建议,您可以使用
WC()->cart->get_优惠券()
。这将返回所有的优惠券,如果有任何在购物车

但是,正如我检查woocommerce插件源代码时所看到的,
get\u tupbools()
正在使用
WP\u Query
。 如果没有其他更好的方法,那真的没什么大不了的

这里有一个更好的方法。我们可以访问购物车的公共变量
应用的\u优惠券
。它包含应用于购物车的优惠券代码数组。我们可以这样使用它

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

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

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

这不检查特定优惠券(即“test1”优惠券)吗?我不需要这么具体的东西。啊,是的,对不起,但是有人已经建议了
WC()->cart->get_-coupons()
,这是正确的方法。我还尝试了@Reigel,这也很有效。谢谢你们两位。