MySQL查询改变WooCommerce中的可变产品价格

时间:2017-01-09 10:09:31

标签: php mysql wordpress woocommerce product

我想改变woocommerce中可变产品的价格。我尝试使用下面的MySQL查询来做到这一点,

UPDATE wp_postmeta 
SET meta_value = price_value 
WHERE post_id = variation_id AND meta_key = '_sale_price';

但它仅在后端(DB和管理区域)更新而不是在前端。实际上在前端它还没有显示销售价格。 由于我不擅长SQL,是否有任何代码片段或WooCommerce钩子允许我更改变量产品的价格?

感谢。

1 个答案:

答案 0 :(得分:4)

  

如果您想更改促销上的产品价格   使用相同的值更新_sale_price_price

//for Regular Price
UPDATE wp_postmeta 
SET meta_value = diff_price_value 
WHERE post_id = variation_id AND meta_key = '_regular_price';

//for Price
UPDATE wp_postmeta 
SET meta_value = price_value 
WHERE post_id = variation_id AND meta_key = '_price';

//for Sale Price
UPDATE wp_postmeta 
SET meta_value = price_value 
WHERE post_id = variation_id AND meta_key = '_sale_price';

<强> ADDED 如果要将上述所有查询合并到一个查询中,可以使用以下查询:

UPDATE wp_postmeta
SET meta_key = CASE
                   WHEN meta_key = "_regular_price" THEN diff_price_value
                   WHEN meta_key = "_price" THEN price_value
                   WHEN meta_key = "_sale_price" THEN price_value
                   ELSE meta_key
               END
WHERE post_id = variation_id
  AND meta_key IN ("_regular_price", "_price", "_sale_price");

此外,您还必须删除存储在wp_options表格中的 _transient_timeout_wc_var_prices_{{post_id}} _transient_wc_var_prices_{{post_id}} 下的WooCommerce产品价格缓存{1}}

option_name

所有上述查询都经过测试并为我工作。

在运行此查询之前,请先进行数据库备份

参考:Copy WooCommerce products Sale prices to regular prices and reset Sale prices

希望这有帮助!