【问题标题】:Check if ANY coupon code is applied in woocommerce检查是否在 woocommerce 中应用了任何优惠券代码
【发布时间】:2016-05-12 05:00:05
【问题描述】:

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

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

提前致谢。

【问题讨论】:

    标签: wordpress woocommerce conditional checkout


    【解决方案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() ,这是正确的
    猜你喜欢
    • 2021-04-09
    • 1970-01-01
    • 2017-02-06
    • 1970-01-01
    • 2016-11-10
    • 1970-01-01
    • 2014-11-26
    • 2017-07-13
    • 1970-01-01
    相关资源
    最近更新 更多