You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 02:42:16