Я отчаянно пытаюсь понять, как WooCommerce переводит названия отдельных стран / стран в константы полей базы данных и обратно.
то есть.
У меня есть клиент из Греции, который из округа / штата, и у меня нет букв на этой клавиатуре.
Очевидно, что даже у WooCommerce нет букв для этого, потому что в базе данных округ / штат также сохраняется как просто «D».
Какую функцию я могу использовать, чтобы вернуть его в форму интерфейса
Я нашел что-то вроде этого, но я не уверен, как его использовать.
Есть 2 способа получить это.
1) Прямое использование WC()->countries
объект (при наличии):
$countries = WC()->countries;
2) Использование экземпляра WC_Countries
объект:
$countries_obj = new WC_Countries();
Тогда вы можете использовать любой
WC_Countries
методы.
Получить все коды / имена стран доставки в массиве и получить коды / имена всех стран в многоуровневом массиве:
// Get all countries key/names in an array:
$countries_array = WC()->countries->get_countries();
// Get all country states key/names in a multilevel array:
$country_states_array = WC()->countries->get_states();
ИЛИ ЖЕ
$countries_obj = new WC_Countries();
// Get all countries key/names in an array:
$countries_array = $countries_obj->get_countries();
// Get all country states key/names in a multilevel array:
$country_states_array = $countries_obj->get_states();
Так, например, если код страны GR
и государственный код D
:
$countries_obj = new WC_Countries();
$countries_array = $countries_obj->get_countries();
$country_states_array = $countries_obj->get_states();
// Get the country name:
$country_name = $countries_array['GR'];
// Get the state name:
$state_name = $country_states_array['GR']['D'];
// Display names:
echo 'Country name: ' . $country_name . ' <br>State name: ' . $state_name;
Это будет отображать:
Название страны: Греция
Государственное название: Ήπειρος
Что ж…
Кажется, что вы должны загрузить страны и округа с
$wcCountries = new WC_Countries();
$wcCountries->load_country_states();
Таким образом, глобальная переменная состояний становится доступной
global $states
Таким образом, вы можете получить полное имя штата,
$countyCode = isset($states[$countryCode][$countyCode]) ? $states[$countryCode][$countyCode] : $countyCode;
Так как некоторые коды округов в любом случае используют свои полные имена.
Удачного кодирования!