Nemzytch
Nemzytch

Reputation: 201

Get the number of items in WooCommerce cart

i'm actually developping a website. But i'm facing an issue. I need to display the number of item that are in the cart but only the number, nothing else i dont want total amount or anything else. Juste the number of items.

I aim to display it over my " go to cart " link that is an image with an href. But this is not the main pb. The main pb is how to find a way to get only the number of item in the cart.

I'm using WordPress with Avada installed to be able to customize a bit more WP and get some includes features. But i'm not using the avada menu, I'm using a home made menu, and i want to display in it the number of item in cart.

And for the " shopping side " I'm using WooCommerce.

I saw many posts of hooks and everything about this but it was about " show number of items and total cart amount, i dont want to display total car amount, I just want the number. a bit like this way : Cart number of items: plein.com website

Upvotes: 19

Views: 77646

Answers (8)

Aravind Srinivas
Aravind Srinivas

Reputation: 320

From https://gist.github.com/mikejolley/2044101:

Add this code in your header.php file.

<a class="cart-contents" href="<?php echo wc_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>

Upvotes: 3

ale
ale

Reputation: 545

get_cart_contents_count() show the total quantity of all product items. i.e. you buy 2kg of product A and 1kg of product B, get_cart_contents_count() return 3.

If you need to show how many products are in cart, I did this in functions.php:

function count_item_in_cart() {
    $count = 0;
    foreach ( WC()->cart->get_cart() as $cart_item_key => $cart_item ) {
        $count++;
    }
    return $count;
}

then in your php file you can do this

<?php echo count_item_in_cart() . " products"; ?>

Upvotes: 0

John Fotios
John Fotios

Reputation: 160

Further to Kodaloid's answer, you can also only show the cart count if it is greater than 0.

$cartcount = WC()->cart->get_cart_contents_count();
if ($cartcount > 0) { echo $cartcount; }

Upvotes: 5

Afnan Danish
Afnan Danish

Reputation: 39

$total_qty = WC()->cart->cart_contents_count;

Upvotes: 3

7Cloner
7Cloner

Reputation: 49

the best way for get the number of items:

  1. Number of products >> echo count(WC()->cart->get_cart());
  2. Number of products and number of orders for each product : echo WC()->cart->get_cart_contents_count();

Upvotes: 0

Mehul Velani
Mehul Velani

Reputation: 761

Try This Code

global $woocommerce;
print_r(count(WC()->cart->get_cart()));

Upvotes: 7

Jawad Abdani
Jawad Abdani

Reputation: 11

From your given description I understand that you want to show cart count only and nothing else. Here goes the code to do that

Add This code block In header.php or in that file where you want to display this widget...

<a class="cart-customlocation" href="<?php echo wc_get_cart_url(); ?>" title="<?php _e( 'View your shopping cart' ); ?>"><?php WC()->cart->get_cart_contents_count(); ?></a>

And Then Add this code block to functions.php

add_filter('add_to_cart_fragments', 'woocommerce_header_add_to_cart_fragment');

function woocommerce_header_add_to_cart_fragment( $fragments ) {
    global $woocommerce;

    ob_start();

    ?>
    <a class="cart-customlocation" href="<?php echo wc_get_cart_url(); ?>" title="<?php _e( 'View your shopping cart' ); ?>"><?php WC()->cart->get_cart_contents_count(); ?></a>

    <?php

    $fragments['a.cart-customlocation'] = ob_get_clean();

    return $fragments;

}

Upvotes: 12

Kodaloid
Kodaloid

Reputation: 1326

Hey and welcome to the site, though I am new around here too! The WooCommerce documentation actually has a snippet for exactly this purpose:

https://docs.woocommerce.com/document/show-cart-contents-total/

In your case to just get the count, you could do something like this:

Cart Total: <?php echo WC()->cart->get_cart_contents_count(); ?>

Koda

Upvotes: 36

Related Questions