您不应该使用任何重新加载* 来更新购物车的内容计数…而是应该使用 Ajax支持
的专用woocommerce_add_to_cart_fragments
动作挂钩。 *
1)要刷新的HTML: 因此,首先应在主题
header.php文件中将购物车计数嵌入具有定义的唯一ID(或类)的特定html标签中,例如:
?> <div id="mini-cart-count"></div><?php
要么:
echo '<div id="mini-cart-count"></div>';
2)代码:
add_filter( 'woocommerce_add_to_cart_fragments', 'wc_refresh_mini_cart_count');function wc_refresh_mini_cart_count($fragments){ ob_start(); ?> <div id="mini-cart-count"> <?php echo WC()->cart->get_cart_contents_count(); ?> </div> <?php $fragments['#mini-cart-count'] = ob_get_clean(); return $fragments;}
如果您在html标记中使用类,则将替换
['#mini-cart-count']为
['.mini-cart-count']。该挂钩也用于刷新迷你购物车中的内容。
代码在您的活动子主题(或主题)的function.php文件中,或者在任何插件文件中。
由于几年以来
global $woocommerce;+$woocommerce->cart已过时,取而代之的WC()->cart是访问WooCommerce购物车对象。
如果您需要jQuery强制刷新该计数,则可以尝试
wc_fragment_refresh或
wc_fragments_refreshed委派事件,例如:
$(document.body).trigger('wc_fragment_refresh');
要么:
$(document.body).trigger('wc_fragments_refreshed');
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)