我们想隐藏“有优惠券?加一...”在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;
}
发布于 2021-01-14 00:30:34
你的代码应该是这样的
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;
}
编辑:好的,你需要检查页面是结账还是购物车,然后运行脚本。我已经在代码中添加了条件。
https://stackoverflow.com/questions/65705707
复制相似问题