Woocommerce:购物车总数显示为1项目为零

时间:2015-10-29 09:47:10

标签: wordpress woocommerce cart

我已经使用当前总计在我的网站标题中创建了一个链接。

应该以这种方式显示购物车的当前总数和购物车中包含的商品数量:

[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();,即使我强制价格含税,也会显示不含税的价格。

如何在整个网站上获得正确的值?

2 个答案:

答案 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->totalwc_cart_totals_order_total_html()(用于货币符号)