Получить код состояния выставления счета для отображения имени в WooCommerce

Я отчаянно пытаюсь понять, как WooCommerce переводит названия отдельных стран / стран в константы полей базы данных и обратно.

то есть.

У меня есть клиент из Греции, который из округа / штата, и у меня нет букв на этой клавиатуре.

введите описание изображения здесь

Очевидно, что даже у WooCommerce нет букв для этого, потому что в базе данных округ / штат также сохраняется как просто «D».

Какую функцию я могу использовать, чтобы вернуть его в форму интерфейса

введите описание изображения здесь


Редактировать 1.

Я нашел что-то вроде этого, но я не уверен, как его использовать.

введите описание изображения здесь

3

Решение

Есть 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;

Это будет отображать:

Название страны: Греция
Государственное название: Ήπειρος

4

Другие решения

Что ж…

Кажется, что вы должны загрузить страны и округа с

$wcCountries = new WC_Countries();
$wcCountries->load_country_states();

Таким образом, глобальная переменная состояний становится доступной

global $states

Таким образом, вы можете получить полное имя штата,

$countyCode = isset($states[$countryCode][$countyCode]) ? $states[$countryCode][$countyCode] : $countyCode;

Так как некоторые коды округов в любом случае используют свои полные имена.

Удачного кодирования!

0