Я пытался реализовать код, найденный на этом сайте, в ряде ответов конкретного пользователя в отношении обновления оформления заказа на основе изменения выбранного платежного шлюза или какого-либо другого изменения поля. Однако, когда JS включен в мой файл функций, моя проверка застревает, и у меня есть ajax, загружающий анимированные круги.
Я уже пытался адаптировать код из:
Запуск события ajax update_checkout при изменении методов доставки в Woocommerce
Обновление события оплаты ajax при выборе платежного шлюза в Woocommerce
При изменении страны Ajax Checkout для доставки в Woocommerce
Изменить кнопку оплаты при оформлении заказа на основе выбранного способа оплаты Woocommerce
add_filter( "woocommerce_product_get_tax_class", "woo_diff_rate_for_user", 1, 2 );
add_filter( "woocommerce_product_variation_get_tax_class", "woo_diff_rate_for_user", 1, 2 );
function woo_diff_rate_for_user( $tax_class, $product ) {
// Get the chosen payment gateway (dynamically)
$chosen_payment_method = WC()->session->get('chosen_payment_method');
if( $chosen_payment_method == 'wdc_woo_credits'){
$tax_class = "Zero rate";
}
<script type="text/javascript">
(function($){
$('form.checkout').on( 'change', 'input[name^="payment_method"]', function() {
var t = { updateTimer: !1, dirtyInput: !1,
reset_update_checkout_timer: function() {
clearTimeout(t.updateTimer)
}, trigger_update_checkout: function() {
t.reset_update_checkout_timer(), t.dirtyInput = !1,
$(document.body).trigger("update_checkout")
}
};
$(document.body).trigger('update_checkout')
});
})(jQuery);
</script>
return $tax_class;
}
Если я не включу JS / jQuery, моя функция, которая изменяет класс налога в зависимости от варианта оплаты, работает, когда изменяется способ доставки и страница обновляется при изменении. Но мне нужно, чтобы оформление заказа обновлялось при изменении шлюза оплаты, а не при изменении доставки.