WooCommerce变量产品:如何按尺寸属性批量设置变体价格
批量设置WooCommerce变量产品变体价格(仅按尺寸定价)
嘿,这个场景太常见了——500个变体一个个改完全是折磨!我之前帮客户处理过几乎一模一样的需求,给你分享几个不用手动挨个编辑的办法,完美适配你这种仅尺寸决定价格、颜色不影响的情况:
方法1:用WooCommerce内置批量编辑工具(零代码,最省心)
这是最快的办法,完全用WooCommerce自带功能搞定:
- 打开你的变量产品编辑页面,滚动到「产品数据」模块,切换到「变体」标签页
- 点击页面右上角的**「批量编辑」**按钮,进入批量编辑模式
- 在「属性」筛选区,只勾选你要设置价格的尺寸(比如S码)——这样所有带S码的变体(不管是什么颜色)都会被自动选中
- 在「价格」输入框里填上10$,然后点**「更新」**按钮,瞬间所有S码的变体价格就统一了
- 重复上面的操作,依次给XL、M、L等其他尺寸设置对应的价格(比如XL设15$)
方法2:用代码片段批量赋值(适合懂点代码的同学,一步到位)
如果觉得手动选尺寸还是有点麻烦,可以加一段代码一次性搞定所有尺寸的价格设置:
把下面的代码加到你的主题functions.php文件里(或者用代码片段插件,避免改主题文件出错):
function bulk_set_variation_prices_by_size() { // 替换成你的目标产品ID,在产品编辑页地址栏能找到 $target_product_id = 123; $product = wc_get_product($target_product_id); // 不是变量产品就直接退出 if (!$product || !$product->is_type('variable')) return; // 这里定义每个尺寸对应的价格,按你的需求改 $size_price_map = array( 'S' => 10, 'M' => 12, 'L' => 13, 'XL' => 15, // 剩下的尺寸自己补充 ); // 遍历所有变体 foreach ($product->get_available_variations() as $variation_data) { $variation_id = $variation_data['variation_id']; $variation = wc_get_product($variation_id); // 获取当前变体的尺寸属性值,注意这里的属性slug要和你后台的一致 // 比如你的尺寸属性slug是pa_size,就改成get_attribute('pa_size') $current_size = $variation->get_attribute('尺寸'); // 如果这个尺寸在我们的价格映射里,就设置价格并保存 if (isset($size_price_map[$current_size])) { $variation->set_regular_price($size_price_map[$current_size]); // 要是需要设置促销价,就加一行 $variation->set_sale_price(xxx); $variation->save(); } } } // 执行一次这个函数,完成后记得把这行注释掉,不然每次加载页面都会重复执行 bulk_set_variation_prices_by_size();
- 重点提醒:一定要把
$target_product_id换成你实际的产品ID,属性字段要和你后台设置的属性slug匹配(默认属性slug是pa_属性名,比如尺寸属性的slug是pa_size) - 执行完价格设置后,记得把最后一行
bulk_set_variation_prices_by_size();注释掉,避免重复执行
方法3:用CSV导入导出批量处理(变体超多时更高效)
如果以后还要经常做类似的批量修改,用CSV导入导出会更方便:
- 进入WooCommerce后台的「产品」→「导入/导出」,选择导出产品,勾选「仅导出变体」
- 导出后用Excel或Google Sheets打开CSV文件,找到「尺寸」列和「价格」列
- 用表格的筛选功能,把同一尺寸的行筛选出来,批量填充对应的价格(比如筛选所有S码的行,统一设置价格为10$)
- 修改完成后,把CSV文件导回WooCommerce,选择「覆盖现有产品/变体」,确认导入就行
这样不管有多少变体,用表格工具批量处理几分钟就能搞定~
内容的提问来源于stack exchange,提问作者Jack
相关产品推荐
相关产品推荐

