发布
社区首页 >问答首页 >Woocomerce通知保留在页面上,而不是更新和删除旧通知

Woocomerce通知保留在页面上,而不是更新和删除旧通知
EN

Stack Overflow用户
提问于 2021-03-18 03:43:30
回答 1查看 78关注 0票数 0

我的问题是,我使用的是Divi,它没有添加到购物车的按钮功能,但你可以通过将这段代码放入functions.php中来添加一个:

代码语言:javascript
代码运行次数:0
复制
add_action( 'woocommerce_after_shop_loop_item', 'woocommerce_template_loop_add_to_cart', 20 );

现在,我在购物车页面中设置了一个迷你购物车,允许用户购买更多的东西以获得免费送货。当他们单击使用上述代码实现的Add to Cart按钮时,购物车将刷新以添加它。然而,之前的木工通知并没有消失--新的通知只是发布在它的下面。

示例:

用户在他们的购物车-they中,请查看顶部的通知:

“当您结账时,您将获得500分。”

然后,用户将minicart中的内容添加到他们的主购物车中。

他们现在有两个通知,而不是木头通知更新:

“当您结账时,您将获得500分。”

“当您结账时,您将获得550分。”

现在,在有人告诉我使用wc_clear_notices()做一些事情之前;

我已经有了这段代码,当有人点击更新购物车按钮时,它就会起作用:

代码语言:javascript
代码运行次数:0
复制
add_filter( 'woocommerce_update_cart_action_cart_updated', 'clear_notices_on_cart_update', 10, 1 );

function clear_notices_on_cart_update() { 
        wc_clear_notices(); 
    };

但它只有在单击更新购物车按钮时才起作用。当用户从购物车页面上显示的迷你购物车中点击"Add to Cart“时,我如何默认这一点-它将更新通知,而不是每次都显示副本?或者每次购物车以任何方式更新时-它都会删除旧的木工通知?

编辑:添加了如何在我的网站上设置通知的示例。例如,这是手机上的一个锚点通知,当你点击按钮时,会将你带到底部的迷你图标。

其他通知的设置方式相同,但功能不同。无论函数中有什么-当单击“添加到购物车”时,它们都会重复。

代码语言:javascript
代码运行次数:0
复制
add_action( 'woocommerce_before_cart', 'mobile_notice' );
 
function mobile_notice() {
    if ( WC()->cart->get_cart_contents_count() != 0 && wp_is_mobile()) {
        $notice = sprintf('Add *3 of these exclusive products to the cart for $19.99 and get <strong>FREE SHIPPING!</strong><br><a href="#mobiletext" style="" class="button wc-forward">Get Free Shipping</a>');
        wc_print_notice( $notice, 'notice' );
    } 
 
}

以下是通知的图像,如果它有任何帮助的话。Notice Duplicates

EN

回答 1

Stack Overflow用户

发布于 2021-03-18 04:24:07

在添加新通知之前尝试添加wc_clear_notices();

代码语言:javascript
代码运行次数:0
复制
add_action( 'woocommerce_before_cart', 'mobile_notice' );
function mobile_notice() {
    if ( WC()->cart->get_cart_contents_count() != 0 && wp_is_mobile()) {
        wc_clear_notices();
        $notice = sprintf('Add *3 of these exclusive products to the cart for $19.99 and get <strong>FREE SHIPPING!</strong><br><a href="#mobiletext" style="" class="button wc-forward">Get Free Shipping</a>');
        wc_print_notice( $notice, 'notice' );
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66680170

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档