12
votes

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

8
Hi, welcome to Stack Overflow! There is a typo in your question title. If you correct it people will be able to find and answer it a lot easier :) - William Patton

8 Answers

22
votes

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

11
votes

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;

}
6
votes

Try This Code

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

From here:

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>
2
votes

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

<?php
	$cartcount = WC()->cart->get_cart_contents_count();
	if ($cartcount > 0) { echo $cartcount; }
?>
2
votes

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

0
votes

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 function, 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 that:

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

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();