MySQL查询以更改WooCommerce中的可变产品价格
我想更改woocommerce中可变产品的价格.我尝试在下面的MySQL查询中执行此操作,
I want to change the prices for variable products in woocommerce. I tried with below MySQL query to do it,
UPDATE wp_postmeta
SET meta_value = price_value
WHERE post_id = variation_id AND meta_key = '_sale_price';
,但仅在后端(数据库和管理区域)而不在前端进行更新.实际上在前端它也不显示销售价格. 由于我不擅长SQL,是否有任何代码片段或WooCommerce挂钩可让我更改可变产品的价格?
but its updating only in backend(DB and admin area) not in front-end. Actually in front-end its not showing sale price also. As I'm not good at SQL, is there any code snippet or WooCommerce hook which allows me to change the price for a variable product?
谢谢.
如果您要更改销售上的产品价格,则可以 用相同的值更新
_sale_price
和_price
.
If you want to change the Product Price which is on Sale you have to update both
_sale_price
and_price
with same value.
//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 If you want to merge all the above query into a single query you can use this one:
UPDATE wp_postmeta
SET meta_value = 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
表中option_name
Also you have to delete WooCommerce product price caching which is stored in wp_options
table under _transient_timeout_wc_var_prices_{{post_id}}
and _transient_wc_var_prices_{{post_id}}
in option_name
DELETE
FROM `wp_options`
WHERE (`option_name` LIKE '_transient_wc_var_prices_%'
OR `option_name` LIKE '_transient_timeout_wc_var_prices_%')
以上所有查询均已通过测试并为我工作.
在运行此查询之前,请先进行数据库备份
参考:将WooCommerce产品的销售价格复制为正常价格并重置销售价格
希望这会有所帮助!