На странице оформления заказа пользователь может выбрать рассрочку для способа оплаты кредитной картой, и за каждую рассрочку необходимо добавить комиссию к общей сумме заказа.
Я использую javascript для визуального обновления итогов каждый раз, когда пользователь изменяет выбранный взнос, но мне нужно также обновить итоговую сумму заказа в бэкэнде.
Пока что я нашел несколько способов обновления итогов. Один из них включает в себя действие woocommerce_checkout_create_order.
add_action( 'woocommerce_checkout_create_order', 'change_total', 20, 1 );
function change_total_on_checking( $order ) {
$order->set_total(); // Add rules here
Согласно этому ответу:
Изменение общей суммы заказа после оформления заказа в Woocommerce
Это действие выполняется прямо перед методом $ order-> save (). Здесь у меня есть экземпляр заказа.
Чтобы завершить сценарий моего дела, мне нужна сумма взноса, переданная формой оформления заказа, но я не знаю, как получить к ней доступ из этого действия. Я не знаю, возможно ли это вообще.
Другой способ - использовать woocommerce_checkout_update_order_review в соответствии с этим ответом:
обработать событие изменения метода оплаты
Но я не понял, как заставить это работать на стороне PHP.
Так есть идеи? Как изменить сумму заказа на странице оформления заказа, прочитав сумму взноса и применив некоторые правила для изменения его стоимости?