MySQL 在 WooCommerce 中更改可变产品价格的查询
MySQL query to change variable product price in WooCommerce
我想更改 woocommerce 中可变产品的价格。我尝试使用下面的 MySQL 查询来做到这一点,
UPDATE wp_postmeta
SET meta_value = price_value
WHERE post_id = variation_id AND meta_key = '_sale_price';
但它只在后端(数据库和管理区域)更新,而不是在前端。实际上在前端它也没有显示销售价格。
由于我不擅长 SQL,是否有任何代码片段或 WooCommerce 挂钩允许我更改可变产品的价格?
谢谢。
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';
已添加
如果您想将上述所有查询合并为一个查询,您可以使用这个查询:
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");
您还必须删除存储在 _transient_timeout_wc_var_prices_{{post_id}}
下的 wp_options
table 中的 WooCommerce 产品价格缓存和_transient_wc_var_prices_{{post_id}}
在 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 查询来做到这一点,
UPDATE wp_postmeta
SET meta_value = price_value
WHERE post_id = variation_id AND meta_key = '_sale_price';
但它只在后端(数据库和管理区域)更新,而不是在前端。实际上在前端它也没有显示销售价格。 由于我不擅长 SQL,是否有任何代码片段或 WooCommerce 挂钩允许我更改可变产品的价格?
谢谢。
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';
已添加 如果您想将上述所有查询合并为一个查询,您可以使用这个查询:
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");
您还必须删除存储在 _transient_timeout_wc_var_prices_{{post_id}}
下的 wp_options
table 中的 WooCommerce 产品价格缓存和_transient_wc_var_prices_{{post_id}}
在 option_name
DELETE
FROM `wp_options`
WHERE (`option_name` LIKE '_transient_wc_var_prices_%'
OR `option_name` LIKE '_transient_timeout_wc_var_prices_%')
以上所有查询都经过测试并适用于我。
在 运行 这个查询之前做一个数据库备份
参考:
希望对您有所帮助!