我正在拼命地理解,WooCommerce如何将某些国家的县/州名称转换为数据库字段常量并返回。
即
我有一位来自希腊的客户,他恰好来自一个县/州,我没有在这个键盘上写字。
显然,即使WooCommerce也没有信件,因为在数据库中,县/州也被保存为“D”。
我可以使用什么功能将其恢复为
的前端形式我发现了类似的东西,但我不确定如何使用它。
答案 0 :(得分:4)
有两种方法可以解决这个问题。
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();
OR
$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;
这将显示:
国名:希腊
州名:Ήπειρος
答案 1 :(得分:0)
嗯...
您似乎必须使用
加载国家/地区$wcCountries = new WC_Countries();
$wcCountries->load_country_states();
因此,状态全局变量可用
global $states
因此,您可以通过
检索完整的州名$countyCode = isset($states[$countryCode][$countyCode]) ? $states[$countryCode][$countyCode] : $countyCode;
因为一些县代码无论如何都在使用他们的全名。
快乐的编码!