Я добавил пользовательский список состояний в свою 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
Поэтому мне было интересно, можно ли использовать эту логику для создания функции, которая будет печатать имя состояния всякий раз, когда шаблон вызывает код? Любая помощь будет очень высоко ценится.
Вы можете использовать следующее от текущего пользователя (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];
Других решений пока нет …