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

如何在WooCommerce后台产品列表新增列显示商品可用配送国家

实现WooCommerce后台产品列表显示可用配送国家

以下是适配ALD插件导入商品的后台列自定义代码,直接添加到主题的functions.php文件或自定义插件中即可:

1. 新增后台产品列表列

// 给产品列表添加可用配送国家列
add_filter('manage_edit-product_columns', 'add_shipping_countries_column');
function add_shipping_countries_column($columns) {
    // 可调整列的插入位置,这里选择在库存列后添加
    $new_columns = [];
    foreach ($columns as $key => $label) {
        $new_columns[$key] = $label;
        if ($key === 'is_in_stock') {
            $new_columns['shipping_countries'] = '可用配送国家';
        }
    }
    return $new_columns;
}

2. 填充列内容

// 填充可用配送国家列的内容
add_action('manage_product_posts_custom_column', 'populate_shipping_countries_column', 10, 2);
function populate_shipping_countries_column($column, $post_id) {
    if ($column === 'shipping_countries') {
        // 获取ALD插件存储的配送国家数据(默认字段为_ald_shipping_countries,若不对可查数据库post_meta表确认)
        $shipping_countries = get_post_meta($post_id, '_ald_shipping_countries', true);
        
        if (!empty($shipping_countries) && is_array($shipping_countries)) {
            $country_names = [];
            $wc_country_list = WC()->countries->countries;
            
            foreach ($shipping_countries as $code) {
                // 把国家代码转成中文名称,无对应名称时显示原代码
                $country_names[] = $wc_country_list[$code] ?? $code;
            }
            
            echo implode(', ', $country_names);
        } else {
            echo '无';
        }
    }
}

注意事项

  • 若ALD插件存储配送国家的字段不是_ald_shipping_countries,可通过数据库工具查看对应产品的post_meta表,找到存储国家列表的meta_key替换即可。
  • 如需调整列的显示位置,可修改add_shipping_countries_column函数中的is_in_stock为其他列的key(比如price、title)。
  • 代码支持简单产品,若需适配可变产品的子产品,可扩展逻辑遍历子产品ID获取对应配送国家数据。

内容的提问来源于stack exchange,提问作者You Cha

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 16:17:41