Ограничить состояние доставки при оформлении заказа в Woocommerce

При доставке в США я пытаюсь ограничить адрес доставки одним штатом (Кентукки), приведенный ниже код работает на WooCommerce 3.5.8, но как только обновите WooCommerce, он перестанет работать. Я пробовал разные версии (бета-версия 3.6.0, rc1 и т. д.), и все, что было после 3.5.8, переставало работать (отображались все штаты, а не только Кентукки).

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

 add_filter( 'woocommerce_checkout_fields' , 'custom_override_checkout_fields' );

function custom_override_checkout_fields( $fields ) 
{
    $fields['shipping']['shipping_state']['options'] = array('KY' => 'Kentucky' );

    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 и хотите разрабатывать...
1
0
737
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

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

Следующее установит предопределенную страну и штат доставки по умолчанию, отображая поле выбора штата доставки как отключенное (только чтение) с выбранным значением «Кентукки»:

add_filter( 'woocommerce_shipping_fields' , 'custom_shipping_state_fields', 100, 1 );
function custom_shipping_state_fields( $fields ) {
    WC()->customer->set_shipping_country('US'); // Set shipping country
    WC()->customer->set_shipping_state('KY'); // Set shipping state

    $fields['shipping_state']['type'] = 'select';
    $fields['shipping_state']['options'] = ['KY' => __('Kentucky', 'WooCommerce')];
    $fields['shipping_state']['default'] = 'KY';
    $fields['shipping_state']['input_class'] = [];
    $fields['shipping_state']['custom_attributes'] = ['disabled' => 'disabled'];

    return $fields;
}

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

Кажется, это работает, но если я удалю отключенную опцию, я смогу увидеть все остальные состояния. В 3.5.8 появится единственный штат — Кентукки.

Howli 27.05.2019 21:17

@Howli Невозможно удалить состояния только при доставке в последней версии WooCommerce… Это можно сделать только с помощью какого-либо другого крючка как для выставления счетов, так и для доставки. Теперь важно то, что штат доставки всегда Кентукки, что и делает этот код.

LoicTheAztec 27.05.2019 21:17

Я только что протестировал этот код с 3.5.8, и он удалил все штаты в раскрывающемся списке, кроме Кентукки. Было можно, а теперь нельзя

Howli 27.05.2019 21:23

@Howli Больше нет с WooCommerce 3.6+

LoicTheAztec 27.05.2019 21:24

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