Question

I am not expert on WooCommerce, i cant find how to display price that calculate on it discount from coupon.

This code, display price after coupon, but also with shipping price - what i dont want, i want to display price after discount, before shipping and tax:

$woocommerce->cart->get_cart_total();

This code display the finnal price without discount and without shipping:

$woocommerce->cart->get_cart_subtotal();

So i tried something like that to get price after discount:

<?php
 $totalp = $woocommerce->cart->get_cart_subtotal();
 $totaldisc = $woocommerce->cart->get_total_discount();
 $resultp = $totalp - $totaldisc; 

 echo ($resultp);
?>

But it show "0" number.

So, i guess there is simple function for what i want (i want to get total cart price after discount, before shipping), but i cant find this function.

Was it helpful?

Solution

Answer: i was need to use int's or floats without symbols, and the best way was to check WooCommerce docs here: Woo - Docs , and to search for this variable and use it without () (not function). now it work :)

<?php

$first_number = $woocommerce->cart->subtotal;
$second_number = $woocommerce->cart->discount_total;
$sum_total = $first_number - $second_number;

print ($sum_total);

?>

OTHER TIPS

Since you have the currency in the prices, you'll need to remove them.

I couldn't find WooCommerce code to just get the subtotal & discount without currency symbol, so let's just remove them manually:

function remove_currency($price) {
    return (double) preg_replace('/[^0-9\.]+/', '', $price);
}

$totalp = remove_currency($woocommerce->cart->get_cart_subtotal());
$totaldisc = remove_currency($woocommerce->cart->get_total_discount());
$resultp = $totalp - $totaldisc; 

echo $resultp;

This post is a bit old but I would like to inform anyone viewing that Woocommerce 3.x now uses:

WC()->cart 

or you can use just

$cart

as long as you have the name_of_my_function( $cart ){} parameter callable.

Everything above is fine... I'm sure yet in hopes someone is not aware that $woocommerce global is no long in use.

There is also a way to loop foreach through the cart items (objects) to pick your price sub-totals using the cart_object.

foreach( $cart_obj->get_cart() as $key=>$value ) 
{
    $priced    = $value['subtotal'];
    $new_price = $priced - ($predefined_referral_discount * 1);

    $value['data']->set_price( $new_price );    
}

Remember: name_of_my_function( $cart_obj ){} for this one. Happy Coding

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top