Все файлы woocommerce должны быть переопределены путем копирования этого файла в вашу дочернюю тему.
Кроме того, в бэкэнде woocommerce должна быть отмечена опция, которая показывает Показать калькулятор доставки на странице корзины (как это будет покажите калькулятор)
Добавьте приведенный ниже код в woocommerce / cart / cart-shipping. php файл перед первым tr (вы найдете в файле)
if(is_checkout() && !$show_shipping_calculator && 'yes' === get_option( 'woocommerce_enable_shipping_calc' ) ) {
$show_shipping_calculator = true;
}
Добавьте приведенный ниже код в свой Функции дочерней темы. php
add_action( 'wp_enqueue_scripts', 'test_test' );
function test_test() {
if( is_checkout() ) {
if( wp_script_is( 'wc-cart', 'registered' ) && !wp_script_is( 'wc-cart', 'enqueued' ) ) {
wp_enqueue_script( 'wc-cart' );
}
}
}
Теперь нам нужно добавить тег id в кнопку итогов обновления калькулятора доставки, для этого на странице woocommerce / cart / shipping-calculator. php найдите кнопку, которая имеет name = "calc_shipping" и добавьте тег id в этой кнопке ====> id = "calc_shipping"
Примечание ==> Это сделано нами для привязки события нажатия кнопки в jQuery. Вы можете используйте любой другой альтернативный способ (если хотите)
Теперь последний шаг,
Добавьте ниже jquery код в js файле вашей дочерней темы
jQuery(document).on('click','#calc_shipping',function(e){
e.preventDefault();
var shipping_country_val = jQuery("#calc_shipping_country").val();
var shipping_state_val = jQuery("#calc_shipping_state").val();
var shipping_city_name = jQuery("#calc_shipping_city").val();
var shipping_postcode = jQuery("#calc_shipping_postcode").val();
jQuery("#billing_country").val(shipping_country_val);
jQuery("#billing_state").val(shipping_state_val);
jQuery('#billing_city').val(shipping_city_name);
jQuery('#billing_postcode').val(shipping_postcode);
jQuery("#shipping_country").val(shipping_country_val);
jQuery("#shipping_state").val(shipping_state_val);
jQuery('#shipping_city').val(shipping_city_name);
jQuery('#shipping_postcode').val(shipping_postcode);
$('#billing_country , #shipping_country').trigger('change');
$('#billing_state, #shipping_state').trigger('change');
});