如何让WooCommerce原生导出的CSV产品文件显示分类识别式属性字段名?
WooCommerce导出CSV时将属性转为分类识别字段的方法
原生WooCommerce产品导出的CSV会用Attribute 1 name、Attribute 1 value(s)这类通用字段,导致不同属性(颜色、尺寸、评分等)混在同一列里,格式混乱,还没法在产品的「Additional Information」标签页生成规整的信息表格。要实现像attribute:pa_color、attribute:pa_size这类分类清晰的单独字段,可按以下方法操作:
方法一:手动指定需导出的属性(自定义代码)
通过添加代码到主题的functions.php或自定义代码插件(如Code Snippets),手动指定要导出的属性字段:
// 添加自定义属性导出列 add_filter('woocommerce_product_export_product_default_columns', 'add_custom_attribute_export_columns'); function add_custom_attribute_export_columns($columns) { // 这里替换成你需要导出的属性slug(pa_开头) $target_attributes = ['pa_color', 'pa_size', 'pa_material', 'pa_rating']; foreach ($target_attributes as $attr_slug) { // 列名显示为属性的友好名称(比如pa_color对应Color) $column_name = ucwords(str_replace('pa_', '', $attr_slug)); $columns["attribute:$attr_slug"] = $column_name; } return $columns; } // 给每个属性列填充对应的值 add_filter('woocommerce_product_export_product_column_attribute:pa_color', 'fill_attribute_export_value', 10, 2); add_filter('woocommerce_product_export_product_column_attribute:pa_size', 'fill_attribute_export_value', 10, 2); add_filter('woocommerce_product_export_product_column_attribute:pa_material', 'fill_attribute_export_value', 10, 2); add_filter('woocommerce_product_export_product_column_attribute:pa_rating', 'fill_attribute_export_value', 10, 2); function fill_attribute_export_value($value, $product) { // 获取当前属性的slug $attr_slug = str_replace('attribute:', '', current_filter()); // 获取产品对应属性的值 $attr_value = $product->get_attribute($attr_slug); // 有值返回值,无值返回空字符串 return $attr_value ? $attr_value : ''; }
方法二:自动导出所有全局属性(自定义代码)
如果你的产品属性较多,不想手动逐个添加,可使用这段代码自动获取所有WooCommerce全局属性并生成导出列:
// 自动添加所有全局属性的导出列 add_filter('woocommerce_product_export_product_default_columns', 'add_all_global_attributes_export_columns'); function add_all_global_attributes_export_columns($columns) { global $wpdb; // 从数据库获取所有全局属性的名称 $attribute_names = $wpdb->get_col("SELECT attribute_name FROM {$wpdb->prefix}woocommerce_attribute_taxonomies"); foreach ($attribute_names as $attr_name) { $attr_slug = 'pa_' . $attr_name; $columns["attribute:$attr_slug"] = ucwords($attr_name); } return $columns; } // 通用属性值填充函数 add_filter('woocommerce_product_export_product_column', 'fill_dynamic_attribute_value', 10, 3); function fill_dynamic_attribute_value($value, $product, $column_key) { // 判断当前列是否为属性列 if (str_starts_with($column_key, 'attribute:pa_')) { $attr_slug = str_replace('attribute:', '', $column_key); $attr_value = $product->get_attribute($attr_slug); return $attr_value ? $attr_value : ''; } return $value; }
操作步骤
- 将上述代码添加到你的WordPress站点:推荐用自定义代码插件添加,避免主题更新丢失代码;也可编辑当前主题的
functions.php文件(编辑前务必备份)。 - 进入WooCommerce的「产品 > 导出」页面,在「列」选项中勾选需要导出的属性字段(比如Color、Size等)。
- 完成导出设置后,点击「导出」,得到的CSV文件就会包含
attribute:pa_color这类分类清晰的单独字段,每个字段仅对应单一属性值。
注意事项
- 导入CSV时,确保字段名与导出的一致,这样属性值会正确映射到产品对应的属性中,导入后产品的「Additional Information」标签页会自动生成规整的信息表格。
- 如果使用自定义代码插件,激活代码后需刷新导出页面才能看到新添加的属性列。
内容的提问来源于stack exchange,提问作者christo
相关产品推荐
相关产品推荐

