Wordpress中的WooCommerce将国家类别定义如下(为简化起见)

class WC_Countries {
    public $countries;

    public function __construct() {
        global $woocommerce, $states;

        $this->countries = apply_filters( 'woocommerce_countries', array(
            'AF' => __( 'Afghanistan', 'woocommerce' ),
            'AX' => __( 'Åland Islands', 'woocommerce' ),
            'AL' => __( 'Albania', 'woocommerce' ),
            'DZ' => __( 'Algeria', 'woocommerce' ),

        ));
    }
}

下订单时,国家/地区代码将写入Wordpress wp_postmeta表中,并且可以使用get_post_meta()函数在可以访问订单ID的任何位置提取该国家/地区代码:
get_post_meta( $order->id, '_shipping_country', true ),

问题是,由于佩戴者只需从数据库中提取两个字符,如何将运输国家/地区代码(例如AF)转换为Countrys类中给出的国家/地区名称?

最佳答案

您可以使用WC_Countries访问WC()->countries类。因此,要从订单中获取国家/地区名称,您必须使用:

WC()->countries->countries[ $order->shipping_country ];

在WooCommerce 3.0+上,您应该使用:

WC()->countries->countries[ $order->get_shipping_country() ];

如果您想获取状态,则需要先检查是否存在,因为WooCommerce并不包含所有状态,因此这里您需要什么:

$states = WC()->countries->get_states( $order->get_shipping_country() );
$state  = ! empty( $states[ $order->get_shipping_state() ] ) ? $states[ $order->get_shipping_state() ] : '';

关于php - 在WooCommerce中从国家/地区代码获取国家/地区名称,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25528454/

10-12 00:22
查看更多