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);
to
$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...
You can also convert $amount in float value as per your requirement.
$totalamount = $woocommerce->cart->cart_contents_total;
echo $totalamount;
Try this:
The function get_cart_total uses wc_price function thas converts cart_contents_total to currency.
You need to call the global variable to ensure that it gets the correct values.
If you add
just before
that should solve your problem.
To show the carts total including tax and discounts use this
This also work nicelly.
WC()->cart->total