При доставке в США я пытаюсь ограничить адрес доставки одним штатом (Кентукки), приведенный ниже код работает на 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;
}
Есть ли проблема с вышеуказанным или какие-то изменения, которые мне нужно внести?
Следующее установит предопределенную страну и штат доставки по умолчанию, отображая поле выбора штата доставки как отключенное (только чтение) с выбранным значением «Кентукки»:
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 вашей активной дочерней темы (или активной темы). Проверено и работает.
@Howli Невозможно удалить состояния только при доставке в последней версии WooCommerce… Это можно сделать только с помощью какого-либо другого крючка как для выставления счетов, так и для доставки. Теперь важно то, что штат доставки всегда Кентукки, что и делает этот код.
Я только что протестировал этот код с 3.5.8, и он удалил все штаты в раскрывающемся списке, кроме Кентукки. Было можно, а теперь нельзя
@Howli Больше нет с WooCommerce 3.6+
Кажется, это работает, но если я удалю отключенную опцию, я смогу увидеть все остальные состояния. В 3.5.8 появится единственный штат — Кентукки.