Как в woocommerce на странице checkout сделать ajax запрос и обновить таблицу рассчетов?
Решено
Скажите как можно произвести из таблицы расчетов покупки которая находится на странице checkout — ajax запрос при этом заблокировать саму таблицу и после выполнения ajax запроса обновить сами расчеты(то есть таблицу). В идеале что бы это все смотрелось как обычная работа таблицы расчетов, то есть после отправки запроса она затемнялась(наложение светлого фона), а после обновления выводились актуальные данные.
1 Ответ(ы)
Ответ
Вот пример отправки 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');