我不是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;号。
所以,我想我想要的是简单的功能(我希望在发货之前得到折扣后的总购物车价格),但我无法找到这个功能。
答案 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 ){}
。
快乐编码