You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何获取WooCommerce购物车中的唯一商品数量

获取WooCommerce购物车中唯一商品数量的方法

嘿,这个需求我之前做项目的时候刚好碰到过!确实WooCommerce自带的get_cart_contents_count()只能返回所有商品的总数量(比如你说的50+20=70),但要获取唯一商品的个数,我们可以自己写个简单的函数来实现,其实很容易~

解决方案代码

我们可以利用WooCommerce购物车对象的get_cart()方法,它会返回一个包含所有唯一购物车项目的数组,数组的长度就是我们要的唯一商品数量:

function get_unique_cart_items_count() {
    // 先检查WooCommerce购物车是否初始化且不为空
    if ( class_exists('WC_Cart') && ! WC()->cart->is_empty() ) {
        // get_cart()返回的是每个唯一商品的数组,直接统计长度即可
        return count( WC()->cart->get_cart() );
    }
    // 购物车为空时返回0
    return 0;
}

代码说明

  • WC()->cart->get_cart():这个方法返回的是购物车中所有唯一商品项目的关联数组——哪怕你给同一件商品添加了多次(比如50件商品A),它也只会被当作一个数组元素,数量信息存在该元素的quantity字段里。
  • count()函数:直接统计这个数组的元素个数,就是购物车中不同商品的数量(比如你例子里的2)。

使用方法

你可以在主题的模板文件(比如header.php、cart.php)里直接调用这个函数:

// 输出唯一商品数量
echo get_unique_cart_items_count();

这样就能得到你想要的结果啦!

内容的提问来源于stack exchange,提问作者Richard Thompson

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 11:39:18