获取州名而不是Woocommerce中的代码

时间:2018-06-12 02:01:23

标签: php wordpress woocommerce state country

我已使用以下代码为我的woocommerce添加了一个自定义状态列表:https://docs.woocommerce.com/document/addmodify-states/

新添加的状态在前端和一些后端屏幕上加载正常,但是在电子邮件和用户帐户屏幕中,woocommerce仅加载代码/值而不是实际名称。 (XX1,XX2等)

我相信我可以使用这个逻辑修复它:

echo WC()->countries->states[$current_user->billing_country][$current_user->billing_state]; //to get State name by state code

所以我想知道是否有可能使用这个逻辑创建一个函数,只要模板调用代码就会打印状态名称?非常感谢任何帮助。

1 个答案:

答案 0 :(得分:2)

您可以使用当前用户WP_User对象)中的以下内容获取州标签名称

$user = wp_get_current_user(); // The current user

$country = $user->billing_country;
$state = $user->billing_state;
echo WC()->countries->get_states( $country )[$state];

经过测试和工作

对于订单ID中的订单:

$order = wc_get_order($order_id); // The WC_Order object

$country = $order->get_billing_country();
$state = $order->get_billing_state();
echo WC()->countries->get_states( $country )[$state];