您的代码中存在一些错误和遗漏的内容。对于标题中的购物车商品计数,以下内容将解决问题。
1)你的HTML代码header.php
file:
<ul>
<li>
<a href="/cart" id="cart_icon"></a>
</li>
<li>
<span class="counter" id="cart-count"><?php
$cart_count = WC()->cart->get_cart_contents_count();
echo sprintf ( _n( '%d', '%d', $cart_count ), $cart_count );
?></span>
</li>
<li id="access"><?php wp_nav_menu( array( 'sort_column' => 'menu_order', 'container_class' => 'menu-header' ) ); ?></li>
</ul>
2) 用于启用购物车商品计数的相关挂钩函数代码阿贾克斯刷新:
add_filter( 'woocommerce_add_to_cart_fragments', 'refresh_cart_count', 50, 1 );
function refresh_cart_count( $fragments ){
ob_start();
?>
<span class="counter" id="cart-count"><?php
$cart_count = WC()->cart->get_cart_contents_count();
echo sprintf ( _n( '%d', '%d', $cart_count ), $cart_count );
?></span>
<?php
$fragments['#cart-count'] = ob_get_clean();
return $fragments;
}
代码位于活动子主题(或活动主题)的 function.php 文件中。经过测试并有效。
有关的:Ajax 化 Woocommerce 中的购物车商品计数 https://stackoverflow.com/questions/51123903/ajaxify-the-cart-items-count-in-woocommerce/51126271#51126271