Как в woocommerce на странице checkout сделать ajax запрос и обновить таблицу рассчетов?

Скажите как можно произвести из таблицы расчетов покупки которая находится на странице checkout — ajax запрос при этом заблокировать саму таблицу и после выполнения ajax запроса обновить сами расчеты(то есть таблицу). В идеале что бы это все смотрелось как обычная работа таблицы расчетов, то есть после отправки запроса она затемнялась(наложение светлого фона), а после обновления выводились актуальные данные.

Добавить Комментарий
Ответ

Вот пример отправки ajax запроса при смене select. после отправки делаем затемнение таблицы. После ответа на ajax мы обновляем саму таблицу.

 function custom_checkbox_checker() {
 if (is_checkout()) {
 wp_enqueue_script('jquery');
 ?>
 <script type="text/javascript">
 jQuery(document).ready(function(e) {
 var $ = jQuery;
 // wc_checkout_params is required to continue, ensure the object exists
 if (typeof wc_checkout_params === 'undefined')
 return false;
var xhr;
function update_shipping(run_balance) {
 if (xhr)
 xhr.abort();
 $('#order_review').block({
 message: null,
 overlayCSS: {
 background: '#fff',
 opacity: 0.6
 }
 });
var data = {
 action: 'woo_test_ajax',
 post_data: run_balance
 };
xhr = $.ajax({
 type: 'POST',
 url: wc_checkout_params.ajax_url,
 data: data,
 success: function(response) {
 if (response) {
 $(document.body).trigger('update_checkout');
 $('#order_methods, #order_review').unblock();
}
 }
 });
 }
 // событие по которому вызываем обновление
 $(document).on('change', '.my_select_sale', function() {
 update_shipping($(this).val());
 });
});
</script>
 <?php
 }
 }
add_action('wp_footer', 'custom_checkbox_checker', 50);
function woo_test_ajax() {
 // код вашей функции вызванной через ajax
 }
add_action('wp_ajax_woo_test_ajax', 'woo_test_ajax');
 add_action('wp_ajax_nopriv_woo_test_ajax', 'woo_test_ajax');
 

Добавить Комментарий

Ваш ответ

Размещая свой ответ, вы соглашаетесь с правилами сайта.