Я пытаюсь найти способ удалить несколько штатов США из выпадающего списка «Штат» на странице оформления заказа в WooCommerce.
Список состояний:
Что я делал до сих пор:
Я вручную удаляю их, как указано в этом ссылка на сайт. Но это не очень хороший способ, так как изменения перезаписываются при каждом обновлении WooCommerce.
Альтернативу я нашел:
По этой ссылке WooCommerce ограничить доставку штатов в зависимости от категории, есть способ задавать доставка указывает, если определенное условие выполнено.
Мне интересно, смогу ли я снята с охраны пять штатов. Это звучит более логично для меня, чем установка 50 штатов. Но, к сожалению, я не могу найти ничего полезного.
Есть идеи, что может быть возможным решением?
Самый простой способ — удалить их, используя специальный фильтр-хук. woocommerce_states
сюда:
add_filter( 'woocommerce_states', 'custom_us_states', 10, 1 );
function custom_us_states( $states ) {
$non_allowed_us_states = array( 'AK', 'HI', 'AA', 'AE', 'AP');
// Loop through your non allowed us states and remove them
foreach( $non_allowed_us_states as $state_code ) {
if( isset($states['US'][$state_code]) )
unset( $states['US'][$state_code] );
}
return $states;
}
Код помещается в файл function.php вашей активной дочерней темы (или активной темы). Проверено и работает.
Затем вы можете добавить некоторые условия или создать страницу пользовательских настроек, как показано в темах ниже:
Лучший способ сделать это — использовать фильтр, добавьте этот фрагмент в ваши темы functions.php
/**
* Modify Woocommerce states array
*
* @param array $states, collection of all $states
* @return array $states, modified array.
*/
add_filter( 'woocommerce_states', function( $states ){
// Unset Hawaii
unset( $states['US']['HI'] );
return $states;
}, 999);
Вы можете сбросить любые состояния, как это.