在不重新加载页面的情况下更新标头购物车项目计数可增强用户体验。让我们深入研究问题及其解决方案。
目标是使用 jQuery 从服务器动态获取购物车商品的总数。然而,当前的实现在同时添加多个项目时会遇到困难。
不用手动重新加载,而是使用由 Ajax 提供支持的 woocommerce_add_to_cart_fragments 操作挂钩:
<code class="php">add_filter('woocommerce_add_to_cart_fragments', 'wc_refresh_mini_cart_count'); function wc_refresh_mini_cart_count($fragments) { ob_start(); $items_count = WC()->cart->get_cart_contents_count(); ?> <div id="mini-cart-count"><?php echo $items_count ? $items_count : ' '; ?></div> <?php $fragments['#mini-cart-count'] = ob_get_clean(); return $fragments; }</code>
如有必要,使用委托事件强制刷新计数:
<code class="javascript">$(document.body).trigger('wc_fragment_refresh');</code>
或
<code class="javascript">$(document.body).trigger('wc_fragments_refreshed');</code>
以上是如何在 WooCommerce 中 Ajaxify 标头购物车项目计数:分步指南的详细内容。更多信息请关注PHP中文网其他相关文章!