如何获取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
相关产品推荐
相关产品推荐

