MySQL查询以更改WooCommerce中的可变产品价格 [英] MySQL query to change variable product price in WooCommerce

查看:211
本文介绍了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产品的销售价格复制为正常价格并重置销售价格

希望这会有所帮助!

这篇关于MySQL查询以更改WooCommerce中的可变产品价格的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆