Я уже выбрал США в качестве страны по умолчанию в кассе woocommerce. В дополнение к этому меня попросили переместить «США» в самый верх списка стран в форме оформления заказа.
Я создал новый фильтр и подключился к хуку ‘woocommerce_countries’ следующим образом:
function change_country_order_in_checkout_form($countries)
{
$countries = array('US' => $countries['US']) + $countries;
return $countries;
}
add_filter( 'woocommerce_countries', 'change_country_order_in_checkout_form' );
Мой список стран корректно изменяется, но затем что-то в WooCommerce сортирует страны по алфавиту, и я хочу этого избежать. Я попытался добавить:
remove_filter('woocommerce_sort_countries', 'wpautop');
но это, казалось, не имело никакого значения. Любая помощь приветствуется.
Чтобы избежать заказа, вам нужно использовать woocommerce_sort_countries
фильтр-хук таким образом:
add_filter('woocommerce_sort_countries', '__return_false');
И чтобы сначала установить «США», попробуйте это:
add_filter( 'woocommerce_countries', 'change_country_order_in_checkout_form' );
function change_country_order_in_checkout_form($countries)
{
$usa = $countries['US']; // Store the data for "US" key
unset($countries["US"]); // Remove "US" entry from the array
// Return "US" first in the countries array
return array('US' => $usa ) + $countries;
}
Код помещается в файл function.php вашей активной дочерней темы (или активной темы). Проверено и работает.
Других решений пока нет …