wordpress tips
wordpress tips

Reputation: 61

WooCommerce - Getting total products count in the cart - not their quantity

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

Answers (3)

Sachin Nawale
Sachin Nawale

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

OpenWebWar
OpenWebWar

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

Domain
Domain

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

Related Questions