Я использую Удалить почтовый индекс из калькулятора доставки корзины Woocommerce код ответа, который я проверил и работает нормально.

Но проблема в том, что он скрывает почтовый индекс калькулятора доставки для всех стран.

Я бы хотел скрыть это для всех стран, ЗА ИСКЛЮЧЕНИЕМ одной: Бельгии (BE).

Это возможно? Как я могу заставить его работать для всех стран, кроме Бельгии.

0
gevcen 8 Сен 2020 в 22:02

1 ответ

Лучший ответ

Я думаю, вы можете динамически скрывать и отображать поле почтового индекса в зависимости от выбранной страны с помощью некоторого jQuery:

add_action( 'wp_footer', 'show_shipping_calculator_postcode_field_based_on_country', 50 );
function show_shipping_calculator_postcode_field_based_on_country() {
    if ( ! is_cart() ) return;
    ?>
    <script type='text/javascript'>
        jQuery(function($){
            $(document.body).on('change', 'select[name="calc_shipping_country"]', function() {

                let country = $(this).find( 'option:selected' ).val();
                let postcode = $(this).closest( 'p#calc_shipping_country_field' ).siblings( 'p#calc_shipping_postcode_field' ).find('input');

                if ( country !== 'BE' ) {
                    postcode.prop('disabled', true);
                    postcode.attr('value', '');
                    postcode.hide();
                } else {
                    postcode.prop('disabled', false);
                    postcode.attr('value', '<?php echo WC()->customer->get_shipping_postcode(); ?>');
                    postcode.show();
                }
            });
        });
    </script>
    <?php
}

Это очищает значение поля почтового индекса, отключает его и скрывает, если выбранная страна не Бельгия.

1
Terminator-Barbapapa 9 Сен 2020 в 11:52