Задать вопрос
  • Почему не проходит заказ на woocommerce, и просит ввести адрес для продолжения?

    @Melton
    Чтобы исправить ошибку нужно чтобы передавалось поле страны доставки\или страны платёжного адреса. Простое удаление полей страны в хуке woocommerce_checkout_fields не поможет(в последних версия woocommerce), т.к. эта ошибка выдаётся не на этапе проверок конкретного поля, а валидации checkout в целом(если включены методы доставки, то страна доставки не может быть пустой). Можно как предложил комментатор выше, просто скрыть поле страны через css, а можно убрать поле программно и устанавливать значение страны вручную. Так или иначе, всё это грязные хаки.

    // Программно устанавливаем страну
    function carrie_customer_default_shipping_country($value, $customer) {
        $value = !empty($value) ? $value : 'RU';
        return $value;
    }
    add_filter('woocommerce_customer_get_shipping_country', 'carrie_customer_default_shipping_country', 10, 2);
    
    // убираем поле страны из формы
    add_filter( 'woocommerce_checkout_fields' , 'custom_override_checkout_fields' ); 
    function custom_override_checkout_fields( $fields ) {
      unset($fields['billing']['billing_country']); // Отключаем страны оплаты
      unset($fields['shipping']['shipping_country']);// Отключаем страны доставки
      return $fields;
    }
    Ответ написан
    3 комментария