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/