Почему обязательное раскрывающееся поле страны не мешает оформлению заказа - WooCommerce

Заголовок может показаться простым исправлением, но он указывает, что это обязательное поле, но проверка разрешена без выбора параметра, а параметр выбора просто отображается.

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

add_filter( 'woocommerce_form_field_country', 'filter_form_field_country', 10, 4 );
function filter_form_field_country( $field, $key, $args, $value ) {
    // Only in checkout page for "billing" city field
    if ( is_checkout() && 'billing_country' === $key ) {
        $search  = esc_html__( 'Select a country / region…', 'woocommerce' ); // String to search
        $replace = esc_html__( 'Select option to pay correct tax', 'woocommerce' ); // Replacement string
        $field   = str_replace( $search, $replace, $field );
    }
    return $field;
}

add_filter( 'woocommerce_checkout_fields', 'custom_override_checkout_fields' );
function custom_override_checkout_fields( $fields ) {
    $fields['billing']['billing_country']['label'] = __('Are you purchasing as a Company Y/N or from the UK?', 'woocommerce');
    $fields['billing']['billing_country']['required'] = true;

    return $fields;
}

Кто-нибудь видит конфликт?

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
2
0
379
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

В WooCommerce параметр по умолчанию в раскрывающемся списке страны имеет не пустое значение, а значение «по умолчанию», как вы можете видеть в этом исходном коде… Поэтому вам нужно добавить следующее, когда выбрано значение «по умолчанию», чтобы чтобы при оформлении заказа не отображалось уведомление об ошибке:

add_action( 'woocommerce_after_checkout_validation', 'checkout_validation_billing_country', 9999, 2 );
function checkout_validation_billing_country( $data, $errors ){
    // Check for any validation errors
    if ( isset($_POST['billing_country']) && $_POST['billing_country'] === 'default' ){
        $errors->add( 'validation', __('<strong>Billing Country</strong> is a required field. Please select your country.', 'woocommerce') );
    }
}

Код находится в файле functions.php активной дочерней темы (или активной темы). Проверено и работает.

Снова LoicTheAztec ваша звезда - сработало на славу - извините за задержку с ответом, но нас не было в студии. Думаю, я проголосовал и принял ответ.

Peter Rossetti 15.12.2020 01:23

Другие вопросы по теме