2016-09-23 3 views
2

ミニカードにWoocommerceサブスクリプションの定期的な合計が表示されようとしています。それを達成するのに役立ついくつかの異なる機能があるようですが、それらのどれも機能していないようです。何かアドバイス?いくつかのページが更新され、最終的に後の定期的な合計が表示されます次の関数をエコーミニマーケットでのWoocommerceサブスクリプションの反復合計の表示

(税込を。):

WC_Subscriptions_Cart::calculate_subscription_totals(); 

問題は、それはまた、通常の1回払いの小計変更するということです(消費税抜きを。)繰り返し小計(VATは除く)。通常の小計は、WC() - >カート - > get_cart_subtotal()とエコーされます。

これらは、これを解決するに役立つかもしれない他の繰り返し、合計関連機能です:任意のヘルプ、ソースコードは、カートおよびチェックアウトに関連のみ利用可能な機能であるhttps://github.com/wp-premium/woocommerce-subscriptions

答えて

2

ありがとう@LoicTheAztecあなたのanswerのために私はこれを解決するのに役立ちました!私は毎月の定期購読だけを持っているので、以下のコードで定期的な合計を表示するように管理されています。誰かが例えば毎週と毎月の定期的な価格を持っている場合、この方法はうまくいかないでしょう。

$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

で確認することができた場合

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

in WooCommerce Subscriptions developer documentation

あなたが探しているものは、カートに残っている関連するサブスクリプションデータだと思います。そのために、cartオブジェクトの生データを出力するのはかなり簡単です(一旦購読する前にカートに追加してしまえば)。

print_r(WC()->cart); 

そして、あなたは、例えばのようなすべてのWC_cart methodsを使用することができます:全体カートオブジェクトの生データを出力)

1:次に、出力にこのデータをこのコードを使用することができます

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

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 
} 
:foreachループ内のカートをOutputing

2)

あなたが詳細で、この生データを見たら、あなたはミニカートに合計を表示するために、あなただけのようなWC_Cart専用の方法でWC()->cartオブジェクトを使用する必要がある場合がありますことを理解するであろう:

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

は、表示するには

+0

ありがとうございます!もともとは、必要不可欠なように、繰り返し合計を表示するためにあらかじめ作成された関数があるかどうかを知りたがっていました。しかし、あなたの答えの助けを借りて、私は[回答](http://stackoverflow.com/a/39659078/6869123)で問題を解決することができました。 – txzn

関連する問題