为了账号安全,请及时绑定邮箱和手机立即绑定

从州代码获取发货州的名称,或者如果用户在 WooCommerce 中键入该名称

从州代码获取发货州的名称,或者如果用户在 WooCommerce 中键入该名称

PHP
慕森王 2023-10-21 16:35:21
就我而言,我有以下代码,对于没有添加州的国家/地区,显示州的名称(它仅在用户手动编写时显示文本)。但是,如果用户选择的国家/地区确实添加了州,那么它会显示代码而不是州名称:`<?php    $custom_order_meta = get_post_meta($order->get_order_number(), '_shipping_state', true);    if( ! empty($custom_order_meta) )    { ?><p> <?phpprintf( '<b>Region / Province:</b> ' . esc_html( '%s', 'woocommerce' ), esc_html($custom_order_meta)  );?> </p> <?php     }    ?>受到获取州名称而不是 Woocommerce 应答代码中的代码的启发,该代码显示客户国家/地区州的名称。但是当客户手动键入时,此代码不会处理。当用户键入它和用户选择它时,如何让它在两种情况下都能正常工作?
查看完整描述

1 回答

?
江户川乱折腾

TA贡献1851条经验 获得超5个赞

尝试以下操作(假设$order变量被定义为当前WC_Order对象):


<?php

    $shipping_country = $order->get_shipping_country();

    $shipping_state   = $order->get_shipping_state();

    

    if( ! empty($shipping_state) ) {

        $country_states   = WC()->countries->get_states( $shipping_country );


        $value = isset($country_states[$shipping_state]) ? $country_states[$shipping_state] : $shipping_state;

        

        if( ! empty($value) ) {

            echo '<p><strong>' . __("Region / Province", "woocommerce") . '</strong>: ' . esc_html($value) . '</p>';

        }

    }

?>

经过测试并有效。


查看完整回答
反对 回复 2023-10-21
  • 1 回答
  • 0 关注
  • 65 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信