折扣后的Woocommerce价格

时间:2014-04-30 08:53:21

标签: php wordpress woocommerce

我不是WooCommerce的专家,我无法找到如何显示以优惠券折扣计算的价格。

此代码,优惠券后的显示价格,还有运费 - 我不想要的,我想在折扣后,运费和税前显示价格:

$woocommerce->cart->get_cart_total();

此代码显示没有折扣且没有发货的最终价格:

$woocommerce->cart->get_cart_subtotal();

所以我尝试了类似的东西来获得折扣后的价格:

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

 echo ($resultp);
?>

但它显示&#34; 0&#34;号。

所以,我想我想要的是简单的功能(我希望在发货之前得到折扣后的总购物车价格),但我无法找到这个功能。

3 个答案:

答案 0 :(得分:4)

答案:我需要使用没有符号的int或浮点数,最好的方法是在这里查看WooCommerce文档: Woo - Docs,并搜索此变量并在没有()(不是函数)的情况下使用它。现在它起作用了:))

<?php

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

print ($sum_total);

?>

答案 1 :(得分:3)

由于您在价格中有货币,因此您需要将其删除。

我无法找到WooCommerce代码来获得小计&amp;没有货币符号的折扣,所以我们只需手动删除它们:

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;

答案 2 :(得分:0)

这篇文章有点老了,但我想通知任何查看Woocommerce 3.x现在使用的人:

WC()->cart 

或者您可以只使用

$cart

只要您可以调用name_of_my_function( $cart ){}参数。

上面的一切都很好...我敢肯定,还是希望有人不知道$woocommerce global不再被使用。

还有一种循环遍历购物车项目(对象)的方式,以使用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 );    
}

请记住:name_of_my_function( $cart_obj ){}。 快乐编码