【问题标题】:Increase all Woocommerce products prices by a percentage [closed]将所有 Woocommerce 产品价格提高一个百分比[关闭]
【发布时间】:2018-05-27 02:18:07
【问题描述】:

我在我的网站中使用 Woocommerce,我需要在我的所有产品价格中额外增加 24%。

如何以简单的方式做到这一点?

使用数据库查询将是我的最佳方式。任何帮助表示赞赏。

【问题讨论】:

  • 您总是可以编写一个查询直接在数据库中执行此操作。或者,如果这是一个临时解决方案,您可以考虑将其征税?
  • 是的,数据库中的查询对我有用。你能给我这样的东西吗?感谢您的帮助
  • 我已经很多年没用过WooCommerce了,所以记不住内存中的数据库结构。如果您更新您的问题,具有最新工作知识的人可能会提供帮助。另外,请尝试自己编写查询,但请务必在运行之前备份数据库。

标签: sql wordpress woocommerce product price


【解决方案1】:

更新于 2018 年 7 月
您可以运行以下 SQL 查询,这将更新您的所有产品价格,增加额外的 24%(以及四舍五入的价格)

UPDATE `wp_postmeta` 
SET `meta_value` = ROUND(`meta_value` * 1.24, 2) 
WHERE meta_key LIKE '%_price%' 
AND (meta_value > 0 or `meta_value` != '')
AND `post_id` IN (
    SELECT `ID` 
    FROM `wp_posts` 
    WHERE `post_type` = 'product' 
    AND `post_status` = 'publish' 
    AND `ID` = `post_id`
);

这是经过测试并且有效的。

在运行此 SQL 查询之前进行数据库备份

您可能需要删除产品临时缓存设置 -> 状态 -> 工具 (tab) 并在 “WooCommerce 瞬态” 中“清除瞬态”;


也处理产品变化:

你只需要替换这一行:

WHERE `post_type` = 'product'

通过这一行:

WHERE `post_type` IN ('product','product_variation')

此外,您还需要使用:

DELETE
FROM `wp_options`
WHERE (`option_name` LIKE '_transient_wc_var_prices_%'
    OR `option_name` LIKE '_transient_timeout_wc_var_prices_%')

【讨论】:

  • 您好,感谢您的回复,此代码增加了 24%,但还添加了“0”以提供我所有产品的价格。有什么建议吗?
  • @Vachos 我已经更新了我的答案......它现在应该可以工作,而无需在销售价格(或空价格)中添加“0”。
  • 是的,这不加 0,但加起来超过 24%。价格从 €3.95 结果 -> 5.53。感谢您的帮助
  • 对不起,我忘了把ROUND( meta_value * 1.40, 2) 改成ROUND( meta_value * 1.24, 2)……我已经更新了我的答案再试一次……非常抱歉:)
  • 完美工作!谢谢人继续做好工作。我在 stackoverflow 中得到的最好的支持!
猜你喜欢
  • 1970-01-01
  • 2018-08-27
  • 2018-07-06
  • 2018-07-17
  • 1970-01-01
  • 1970-01-01
  • 2023-02-04
  • 2014-12-14
  • 1970-01-01
相关资源
最近更新 更多