Reputation: 61
I have total cart quantity but I need count of products available in the cart. I donot want to show total quantity but want to show total products/orders in the cart.
Please help!
Upvotes: 6
Views: 9073
Reputation: 1
I things Following code will help you. I had a issue i want to show total product counts not their quantity in the cart option.
If you change on class-wc-cart.php
file just change php function array_sum()
to count()
it will work.
public function get_cart_contents_count() {
return apply_filters( 'woocommerce_cart_contents_count', count( wp_list_pluck( $this->get_cart(), 'quantity' )) );
}
Upvotes: 0
Reputation: 610
i had same issue in client project @ jivith.com
But i resolved ...
Use in minicart / cart function replace total products count in the cart - not their quantity items
$_cartQty = count( WC()->cart->get_cart() );
**or** use sizeof (WC()->cart->get_cart());
i getting the total unique total products count in the cart instead of item of their quantity...
My demo code:
<span class="cart-items"><?php echo ($minicart_type == 'minicart-inline')
? '<span class="mobile-hide">' . sprintf( _n( '%d item', '%d items', $_cartQty, 'porto' ), $_cartQty ) . '</span><span class="mobile-show">' . $_cartQty . '</span>'
: (($_cartQty > 0) ? $_cartQty : '0'); ?></span>
Upvotes: 4
Reputation: 11808
You can get the total number of unique product is using WC()->cart->cart_contents
. This contains an array of cart items. You can use array_unique() function to avoid repetition of the ids. So finally you can use array_count to get the count of unique products.
Upvotes: 2