【问题标题】:Hide & refresh WooCommerce checkout after add coupon添加优惠券后隐藏和刷新 WooCommerce 结帐
【发布时间】:2021-04-18 16:31:54
【问题描述】:

如果已添加优惠券或客户在结帐页面上添加优惠券,我们希望在 WooCommerce 结帐时隐藏“有优惠券?添加...”。

目前我们在下面使用此代码,当客户在购物车页面上输入优惠券然后导航到结帐页面时,它就会起作用。在这种情况下,“有优惠券?添加一个...”消息不可见。如果购物车页面上没有添加优惠券,则该消息可见。

这工作正常!但是当客户在结帐页面添加优惠券时,它就不起作用了。

1.) 我们收到“已添加优惠券”消息,但要添加的优惠券消息仍然可见,并且优惠券未在订单表中计算。 => 页面刷新后一切正常。

2.) 当客户在结账时移除优惠券时,我们会收到优惠券已移除的消息,但折扣仍显示在订单表中。 => 页面刷新后,它会再次显示所有内容。

所以现在我正在尝试在添加或删除优惠券后刷新页面。但是我很难获得正确的事件。我想我们必须通过js来做到这一点?或者有没有PHP的方法?

add_filter( 'woocommerce_coupons_enabled', 'woocommerce_coupons_enabled_checkout' );

function woocommerce_coupons_enabled_checkout( $coupons_enabled ) {
  
    global $woocommerce;
    
    if ( ! empty( $woocommerce->cart->applied_coupons ) ) {
        return false;
    }
    return $coupons_enabled;
}

【问题讨论】:

  • 通常在购物车或结帐时添加优惠券时,会显示应用的优惠券并刷新总计皮重......所以如果不是这种情况,还有其他问题,比如你的主题,a插件或您制作的其他一些自定义代码……
  • 谢谢。是的,通常...检查的唯一方法是停用所有或?
  • 是的,尝试在此之前进行数据库备份……
  • 来自支付插件。所以我必须联系开发商。谢谢
  • 有没有办法找出插件的哪一部分造成了这个问题?所以也许我可以把这些信息分享给他们,以便他们能更快地解决这个问题……这很痛苦:(

标签: wordpress woocommerce checkout


【解决方案1】:

你的代码应该是这样的

add_filter( 'woocommerce_coupons_enabled', 'woocommerce_coupons_enabled_checkout' );

function woocommerce_coupons_enabled_checkout( $coupons_enabled ) {
  if(is_checkout()){
    global $woocommerce;
    
    if ( ! empty( $woocommerce->cart->get_applied_coupons() ) ) {
        $coupons_enabled = false;
    }
    }
    return $coupons_enabled;
}

编辑:好的,您需要检查页面是结帐还是购物车,然后运行脚本。我在代码中添加了条件。

【讨论】:

  • 谢谢。现在,该代码已解决该错误。但它没有按预期工作。也许这是一个主题问题 GeneratePress 左右..
  • 现在有什么问题?我更新了我的帖子 2 次。可能是你没有复制最新的代码。
  • 问题是,在结账页面添加优惠券后,页面不刷新。也没有代码:(我可以实现没有致命错误的代码。但是,结帐页面不会刷新。
  • 在javascript中添加这个jQuery( document.body ).on( 'updated_checkout', function(){ location.reload(); });
猜你喜欢
  • 2021-10-21
  • 2021-02-17
  • 1970-01-01
  • 2016-02-25
  • 2014-09-08
  • 2017-07-13
  • 1970-01-01
  • 1970-01-01
  • 2021-10-26
相关资源
最近更新 更多