Отображение повторяющейся суммы подписки Woocommerce в мини-карте

Попытка получить повторяющуюся сумму подписки 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

Решение

Спасибо @LoicTheAztec для тебя ответ что помогло мне решить это! Удалось отобразить повторяющиеся итоги с помощью следующего кода, так как у меня есть только ежемесячные подписки. Если у кого-то есть, например, еженедельные и ежемесячные периодические цены, этот метод не будет работать.

$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;
3

Другие решения

Единственные доступные функции, связанные с корзиной и оформлением заказа, находятся в Документация для разработчиков WooCommerce Подписки

Теперь я думаю, что вы ищете соответствующие данные о подписке, которые остаются в корзине. Для этого довольно просто вывести необработанные данные объекта корзины (как только вы добавили в корзину перед подпиской). Затем вы можете использовать этот код для вывода этих данных:

1) Вывод исходных данных всего объекта корзины:

print_r(WC()->cart);

И тогда вы можете использовать все Методы WC_cart как например:

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( );

Для отображения

2

По вопросам рекламы [email protected]