获取结算状态代码以在WooCommerce中显示名称

时间:2017-08-13 23:39:56

标签: php wordpress woocommerce states countries

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

我有一位来自希腊的客户,他恰好来自一个县/州,我没有在这个键盘上写字。

enter image description here

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

我可以使用什么功能将其恢复为

的前端形式

enter image description here

编辑1。

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

enter image description here

2 个答案:

答案 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;

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

快乐的编码!