WooCommerce - показать доставку на странице оформления заказа - PullRequest
0 голосов
/ 26 января 2020

Я хотел бы предложить в процессе заказа WooCommerce возможность предложить клиенту услугу у него дома. Теперь я создал способ доставки с почтовыми кодами, где это предлагается, но мне нужна возможность выбрать способ доставки в кассе (в идеале после ввода адреса).

Я видел много скриншотов, где это было возможно в кассе (см. рисунок), и нашел некоторые инструкции, как реализовать стоимость доставки в кассе (например: https://websitedepot.com/moving-shipping-rates-woocommerce-checkout/). Однако ничего не помогло.

Может быть, кто-то может помочь мне реализовать это. Большое спасибо!

Source: https://ehost.net/divi-news/how-to-configure-your-woocommerce-shipping-options/

1 Ответ

0 голосов
/ 26 января 2020

Все файлы 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');
            });
...