在minicart中显示Woocommerce订阅重复总计

时间:2016-09-23 08:41:08

标签: php wordpress woocommerce cart subscriptions

试图让Woocommerce订阅重复出现在微型网站上。似乎有一些不同的功能可能有助于实现这一点,但它们似乎都没有开箱即用。有什么建议吗?

在几页刷新后,最终会回显以下功能,显示经常性总额(含增值税):

WC_Subscriptions_Cart::calculate_subscription_totals();

问题是它还会将正常的一次性付款小计(不含增值税)更改为重复小计(不含增值税)。正常小计用WC() - > cart-> get_cart_subtotal()回显。

这些是可能有助于解决此问题的其他经常性的相关函数:

WC_Subscriptions_Cart::get_recurring_cart_contents_total();
WC_Subscriptions_Cart::display_recurring_totals();

如果有任何帮助,可以在https://github.com/wp-premium/woocommerce-subscriptions

中查看源代码

2 个答案:

答案 0 :(得分:3)

感谢您@LoicTheAztecanswer帮助我解决此问题!管理以使用以下代码显示经常性总计,因为我只有每月订阅。如果某人有例如每周和每月经常性价格,则此方法不起作用。

$recurring_total = 0;

foreach ( WC()->cart->cart_contents as $item_key => $item ){
    $item_quantity = $item['quantity'];
    $item_monthly_price = $item['data']->subscription_price;
    $item_recurring_total = $item_quantity * $item_monthly_price;
    $recurring_total += $item_recurring_total; 
}

echo $recurring_total;

答案 1 :(得分:2)

与购物车和结帐相关的唯一可用功能位于WooCommerce Subscriptions developer documentation

现在我认为您所寻找的是购物车中剩余的相关订阅数据。为此,输出购物车对象的原始数据非常容易(一旦您在订阅之前添加到购物车)。然后您可以使用此代码输出此数据:

1)输出整个购物车对象原始数据:

print_r(WC()->cart);

然后您可以使用所有WC_cart methods,例如:

WC()->cart->get_cart_contents_count( );

2)在foreach循环中输出购物车项目:

foreach ( WC()->cart->cart_contents as $item_key => $item ){
    print_r($item); echo '<br><br>'; // displaying the item raw data
    print_r($item['data']); echo '<br><br>'; // displaying the subscription object raw data
    echo $item['line_total']; echo '<br>'; // displaying item total
    echo $item['data']->subscription_price . '<br>'; // displaying subscription object total
}
  

一旦您详细查看了这些原始数据,您就会明白,为了在迷你购物车中显示总数,您可能只需要使用 WC()->cart 对象和WC_Cart专用方法一样:

WC()->cart->get_cart_total( );

显示