Howli Howli - 2 years ago 306
PHP Question

Get woocommerce carts total amount

I am trying to apply a discount to a carts total price, but I can only do it to the item base price and not the over all price. I Googled and came across this post in the
wordpress stackoverflow:

$amount = floatval( preg_replace( '#[^\d.]#', '',
$woocommerce->cart->get_cart_total() ) ); 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.

I tried adding:

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

and changing

$discount = round( (($discounting_amount / 100 ) * $this->amount)*-1, WC()->cart->dp);


$discount = round( (($discounting_amount / 100 ) * $amount2)*-1, WC()->cart->dp);

But I get the following error:

Fatal error: Call to a member function get_cart_total() on a non-object in...

Answer Source

You need to call the global variable to ensure that it gets the correct values.

If you add

 global $woocommerce;

just before

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

that should solve your problem.

Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download