3

我拼命想了解,WooCommerce 如何将某些国家/地区的县/州名称转换为数据库字段常量并返回。

IE。

我有一位来自希腊的客户,他恰好来自一个县/州,我没有在这个键盘上找到要命名的字母。

在此处输入图像描述

显然,即使 WooCommerce 也没有字母,因为在数据库中,县/州也仅保存为“D”。

我可以使用什么功能将其还原为它的前端形式

在此处输入图像描述


编辑 1。

我发现了类似的东西,但我不确定如何使用它。

在此处输入图像描述

4

2 回答 2

7

有两种方法可以做到这一点。

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;

这将显示:

国名:希腊
国名:Ήπειρος

于 2017-08-14T00:20:14.267 回答
0

好...

看来你必须加载国家和县

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

因此 states 全局变量变得可用

global $states

因此,您可以通过以下方式检索您的全州名称

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

因为一些县代码无论如何都使用他们的全名。

快乐编码!

于 2017-08-14T00:01:31.047 回答