Woocommerce get cart total price in a number format

Is it possible to get the cart total price without any markup. So without the € symbol? Right now I’m getting the amount with:

$totalamount = $woocommerce->cart->get_cart_total();  

this will give €16.50

Read More

I tried this also:

$totalamount = number_format($woocommerce->cart->get_cart_total(), 2, '.', '');

But this always gives 0.00

Is there a woocommerce get function that will give a number format of the total cart price? Thanks!

Related posts

2 comments

  1. Update 2020

    Answer

    See flytech’s answer for a solution using the native WooCommerce API.

    Note / Caveat

    If you’re going to do proper arithmetic with monetary values, always use signed integers (!) representing the smallest denomination of a given currency (Cent, Penny, Paisa, Dirham, e.g.).
    Only convert back to decimal fractions in the presentation layer of your application after all calculations are done.

    This holds true regardless of language or framework.

    Original answer

    I don’t know woocommerce at all and hence there might be a native way as well, but anyhow, this

    $amount = floatval( preg_replace( '#[^d.]#', '', $woocommerce->cart->get_cart_total() ) );
    

    should do.

    The preg_replace eliminates everything but decimal characters and colons.

    Should you care to do math with it, the floatval converts the value from a string to a numeric one.

  2. That is what you want:

    Working with global variable:

    global $woocommerce;  
    $woocommerce->cart->total;
    

    Working with function:

    WC()->cart->total;
    

Comments are closed.