WooCommerce:按产品类别计数自定义购物车项目



我找到了这个脚本,它允许我在WooCommerce中的购物车图标上方显示购物车内容:

<a class="cart-contents" href="<?php echo WC()->cart->get_cart_url(); ?>" title="<?php _e( 'View your shopping cart' ); ?>"><?php echo sprintf (_n( '%d item', '%d items', WC()->cart->get_cart_contents_count() ), WC()->cart->get_cart_contents_count() ); ?> - <?php echo WC()->cart->get_cart_total(); ?></a>

如果我的购物车中有100个项目,则显示100个。

我真正想要的是按项目类型显示计数。因此,如果有50件T恤和50个短裤,我希望单独显示2种项目类型。

有人知道我如何实现这一目标吗?

谢谢

更新 - 2018年8月 - 更轻,紧凑的代码版本。

类似的新答案:自定义购物车项目按产品类别计数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" 类别自定义摘要代码:

<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>

作为HTML标签类" Cart-Contents"是由WooCommerce刷新的购物车片段的使用,您可能需要按照以下方式重命名:自定义购物车项目按产品类别计数WooCommerce中的计数3

在我们自定义的摘要代码中的最后一件事,您可以自定义 - 添加一些文本或其他内容……我已经用类别名称替换 "item(s)"

最新更新