我已经使用当前总计在我的网站标题中创建了一个链接。
应该以这种方式显示购物车的当前总数和购物车中包含的商品数量:
[icon] 1.20€ - 1篇
但是,只有在购物车页面中才会正确计算该值。例如,在主页上,它将仅显示如下:
[icon] 0.00€ - 1篇
这就是我访问这些值的方式:
$count = WC()->cart->cart_contents_count;
WC()->cart->calculate_totals();
if($count > 0)
{
print "<a class='cart-contents' href='" . WC()->cart->get_cart_url();
print "' title='Voir votre panier'>";
print WC()->cart->get_total();
print " - " . sprintf(_n('%d article', '%d articles', $count, 'woothemes'), $count);
print "</a>";
}
如果我致电WC()->cart->get_cart_total();
,即使我强制价格含税,也会显示不含税的价格。
如何在整个网站上获得正确的值?
答案 0 :(得分:3)
global $woocommerce;
$amount = $woocommerce->cart->cart_contents_total+$woocommerce->cart->tax_total;
您还可以根据您的要求在浮动值中转换$ amount。
答案 1 :(得分:1)
我遇到了同样的问题,所以我浏览了WooCommerce代码。在一段时间之前,类WC()->cart->calculate_totals()
中的函数WC_Cart
中存在以下条件
// Only calculate the grand total + shipping if on the cart/checkout
if ( is_checkout() || is_cart() ||
defined('WOOCOMMERCE_CHECKOUT') || defined('WOOCOMMERCE_CART') )
这个条件适用于具体计算total
,我不知道为什么。但这会为您提供正确的解决方法:
在您需要显示总计的页面上包含以下任一行代码:
define( 'WOOCOMMERCE_CART', true );
或
define( 'WOOCOMMERCE_CHECKOUT', true );
然后执行函数WC()->cart->calculate_totals();
然后要使购物车全部使用WC()->cart->total
或wc_cart_totals_order_total_html()
(用于货币符号)