更新 - 2018 年 8 月 - 更简洁的代码版本。
类似的新答案:
Custom cart item counts by product category in Woocommerce 3
此功能用于显示特定产品类别的购物车数量:
function cat_cart_count( $cat_name ) {
$count = 0; // Initializing
// Loop through cart items
foreach( WC()->cart->get_cart() as $cart_item ) {
if( has_term( $term, 'product_cat', $cart_item['product_id'] ) )
$count += $cart_item['quantity'];
}
// Returning category count
return $count == 0 ? false : $count;
}
您将上面的代码粘贴到您的活动子主题或主题的 function.php 文件中。
对于 "shorts" 类别,您将这样使用它:cat_cart_count( "shorts" ) 并将替换 WC()->cart->get_cart_contents_count()。
注意:由于 woocommerce 3,WC()->cart->get_cart_url(); 被 wc_get_cart_url() 替换。
使用它为 "tshirts" 和 "short" 类别自定义 sn-p 代码:
<a class="cart-contents" href="<?php echo WC()->cart->get_cart_url(); ?>" title="<?php _e( 'View your shopping cart' ); ?>"><?php echo sprintf (_n( '%d t-shirt', '%d t-shirts', cat_cart_count( "tshirt" ) ), cat_cart_count( "tshirt" ) ); ?> - <?php echo sprintf (_n( '%d short', '%d shorts', cat_cart_count( "shorts" ) ), cat_cart_count( "shorts" ) ); ?> - <?php echo WC()->cart->get_cart_total(); ?></a>
由于 woocommerce 刷新的购物车片段使用 html 标记类“cart-contents”,您可能需要按照以下说明重命名它:Custom cart item counts by product category in Woocommerce 3
在我们定制的 sn-p 代码中的最后一件事,您可以按照自己的方式添加一些文本或其他内容……我已将 "item(s)" 替换为类别名称。