Я разрабатываю веб-сайт Wordpress + Woocommerce для клиента. Ему нужны его клиенты, чтобы заплатить 30% от корзины заранее, затем они начинают готовить заказ.Вычисление вопроса по деталям заказов woocommerce
Поскольку Woocommerce не имеет встроенной функции предоплаты, я решил использовать купон, применяя автоматически 70% скидку на общую сумму заказа (тогда я скрою информацию о купонах).
Для тележки 1000 € клиент увидит: Total = 300€
.
Затем я добавляю строку «Слева за оплатой» и показываю результат, делающий простой расчет в файле функции: $woocommerce->cart->subtotal - $woocommerce->cart->cart_contents_total;
В результате получается сумма скидки: 700 € в этом случае.
Проблема: Это прекрасно работает на корзину и оформления заказа страницы, но на странице заказа детальной количество «Оставшись платить» 0.
Это код отображения итогов по шаблон порядка-заказа (в woocommerce \ order).
<!-- show the totals on Order Details footer -->
<?php
if ($totals = $order->get_order_item_totals()) foreach ($totals as $total) :
?>
<tr>
<th scope="row"><?php echo $total['label']; ?></th>
<td><?php echo $total['value']; ?></td>
</tr>
<?php
endforeach;
?>
<!-- Trying to add the Left to pay line here -->
<?php if ($totals = $order->get_order_item_totals()) { ?>
<tr class="order-total">
<th>Left to pay</th>
<td><?php echo number_format(custom_Total_Solde(),2,'.','')."€"; ?></td>
</tr>
<?php }; ?>
И вот код, который я использую для выполнения функций для расчета суммы «Оставайтесь платить».
function custom_Total_Solde() {
global $woocommerce;
$solde = $woocommerce->cart->subtotal - $woocommerce->cart->cart_contents_total;
return $solde;
}
Кто-нибудь знает, как итоги вычисляются по деталям заказа? Разве это не по телеге или кассе? Возможно, вы знаете, в каком шаблоне хранятся общие ярлыки данных-деталей заказа? Если я могу это найти, может быть, я могу понять, почему мои расчеты не работают в этой конкретной части ...
Вы рок! Большое спасибо! Я смотрел вокруг, но не уверен, почему '$ order-> get_cart_discount()' не работал в моих функциях. Я разместил его непосредственно на шаблоне php, и он работает. Я видел этот плагин для вкладов, но я хотел сохранить код как можно более простым и легким. Спасибо за информацию о 'global $ woocommerce', можете ли вы рассказать мне, как использовать' WC() 'в моей функции? (Я все еще изучаю php) – wyem
Добро пожаловать. 'get_cart_discount()' является методом класса, поэтому для этого требуется объект класса (в этом случае переменная '$ order'). '$ order' доступен в шаблоне, но вам нужно создать' $ order = new WC_Order ($ order_id) ', чтобы использовать его в функциях. Вы используете 'WC()', просто заменяя все ваши экземпляры '$ woocommerce'' WC() '.ex: '$ woocommerce-> cart' становится' WC() -> cart'. – helgatheviking