【问题标题】:WooCommerce: Custom cart item counts by product categoryWooCommerce:按产品类别计算的自定义购物车项目数
【发布时间】:2016-10-18 03:27:30
【问题描述】:

我发现 this script 允许我在 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 个项目类型。

有谁知道我如何做到这一点?

谢谢

【问题讨论】:

    标签: php wordpress woocommerce cart custom-taxonomy


    【解决方案1】:

    更新 - 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()-&gt;cart-&gt;get_cart_contents_count()

    注意:由于 woocommerce 3,WC()-&gt;cart-&gt;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)" 替换为类别名称。

    【讨论】:

    • Loic 你的回复非常适合我。非常感谢!
    猜你喜欢
    • 2019-01-17
    • 1970-01-01
    • 1970-01-01
    • 2019-12-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-10
    • 2019-12-13
    相关资源
    最近更新 更多