我的问题是,我使用的是Divi,它没有添加到购物车的按钮功能,但你可以通过将这段代码放入functions.php中来添加一个:
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()做一些事情之前;
我已经有了这段代码,当有人点击更新购物车按钮时,它就会起作用:
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“时,我如何默认这一点-它将更新通知,而不是每次都显示副本?或者每次购物车以任何方式更新时-它都会删除旧的木工通知?
编辑:添加了如何在我的网站上设置通知的示例。例如,这是手机上的一个锚点通知,当你点击按钮时,会将你带到底部的迷你图标。
其他通知的设置方式相同,但功能不同。无论函数中有什么-当单击“添加到购物车”时,它们都会重复。
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
发布于 2021-03-18 04:24:07
在添加新通知之前尝试添加wc_clear_notices();
:
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' );
}
}
https://stackoverflow.com/questions/66680170
复制相似问题