Chr*_*yne 8 php wordpress woocommerce
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' ),
));
}
}
Run Code Online (Sandbox Code Playgroud)
下订单时,国家/地区代码将写入Wordpress wp_postmeta表,并且可以使用以下get_post_meta()函数在任何可以访问订单ID的地方提取:
get_post_meta( $order->id, '_shipping_country', true ),
Run Code Online (Sandbox Code Playgroud)
问题是,由于我们只是从DB中提取两个字符,如何将Shipping国家代码(例如AF)转换为Countries类中给出的Country Name?
Cla*_*hes 25
您可以访问该WC_Countries课程WC()->countries.因此,要从订单中获取国家/地区名称,您必须使用:
WC()->countries->countries[ $order->shipping_country ];
Run Code Online (Sandbox Code Playgroud)
在WooCommerce 3.0+上你应该使用:
WC()->countries->countries[ $order->get_shipping_country() ];
Run Code Online (Sandbox Code Playgroud)
如果你想获得状态,你需要在检查之前是否存在,因为WooCommerce不包括所有状态,所以这里你需要什么:
$states = WC()->countries->get_states( $order->get_shipping_country() );
$state = ! empty( $states[ $order->get_shipping_state() ] ) ? $states[ $order->get_shipping_state() ] : '';
Run Code Online (Sandbox Code Playgroud)
要从状态代码获取状态名称,可以使用。
WC()->countries->states[$order->billing_country][$order->billing_state];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
18013 次 |
| 最近记录: |