WooCommerce后台订单页显示地区名称:将数组转为文本
解决WooCommerce后台订单页地区字段显示为数组的问题
我通过Stack Overflow上的方案为WooCommerce结账页添加了地区和城市联动下拉字段,但在后台订单页使用以下代码显示选中的地区时,内容以数组形式展示,希望改为文本格式:
add_action( 'woocommerce_admin_order_data_after_billing_address', 'aba_checkout_field_display_admin_order_meta', 10, 1 ); function aba_checkout_field_display_admin_order_meta( $order ){ $value = $order->get_meta( '_billing_region' ); if ( ! empty($value) ) { echo '<p><strong>'.__('Region').':</strong> ' . $value . '</p>'; } }
只需在输出前判断字段值是否为数组,若是则将其转为字符串即可。修改后的代码如下:
add_action( 'woocommerce_admin_order_data_after_billing_address', 'aba_checkout_field_display_admin_order_meta', 10, 1 ); function aba_checkout_field_display_admin_order_meta( $order ){ $value = $order->get_meta( '_billing_region' ); if ( ! empty($value) ) { // 处理数组格式的值 if ( is_array($value) ) { // 多选场景用逗号分隔,单选场景直接取第一个元素 $value = implode(', ', $value); } // 用esc_html确保输出内容安全 echo '<p><strong>'.__('Region').':</strong> ' . esc_html($value) . '</p>'; } }
如果你的地区字段是单选类型,也可以把implode(', ', $value)替换为$value = reset($value);,直接提取数组的第一个元素作为显示文本。
内容的提问来源于stack exchange,提问作者Irakli Mosidze
相关产品推荐
相关产品推荐

