更新 Woocommerce 可变产品的所有产品变体销售价格
Update all product variation sale prices of a Woocommerce variable product
我有大约 10 种产品,每种都有近 200 种变化。我需要更新特定产品的销售价格,包括其所有变体。
问题是:
所有变体都有不同的价格。
没有输入促销价 - 所有促销价输入框都是空的。
我需要 SQL 运行 的解决方案,并通过采用正常价格并从中扣除 350 来更新特定产品的所有销售价格,或者
现阶段我不知道的任何其他方式,因为我已经尝试过许多解决方案,包括 Woocommerce 内置解决方案 "set sale price",但由于价格不一样,同样不起作用。
SELECT * FROM `wp_postmeta` WHERE post_id = "1097"
UPDATE `meta_id` = (SELECT * FROM `wp_postmeta` WHERE `meta_value` = _regular_price) - 350 WHERE `meta_key` = _sale_price
根据 Whosebug 上的研究编辑的查询表明,wp_postmeta table 保存产品值,wp_posts table 保存产品 ID。
这是我遇到的问题的屏幕截图:
你会看到 meta_id 不同而 post_id 相同,这是因为在 WordPress 中 post_id 是产品,在这种情况下有很多变体本身,meta_id 是 _sale_price 部分,我需要为每个变化更新
我希望这是有道理的!
试试这个 (其中行 AND p.ID = 19
==> 19 是您的可变产品 ID):
UPDATE wp_postmeta as pm
JOIN wp_postmeta as pm2 ON pm.post_id = pm2.post_id
SET pm.meta_value = ( pm2.meta_value - 350 )
WHERE pm.meta_key LIKE '_sale_price'
AND pm2.meta_key LIKE '_regular_price'
AND pm.post_id IN
( SELECT p2.ID
FROM wp_posts AS p
JOIN wp_posts AS p2 ON p2.post_parent = p.ID
WHERE p.post_type = 'product'
AND p.post_status = 'publish'
AND p.ID = 19
AND p2.post_type = 'product_variation'
AND p2.post_status = 'publish' );
已测试并有效(之前一定要备份)
So in this SQL query for a defined variable product ID, It will replace all product variations sale prices by the regular price minus 350 …
如您所见,它可以正常工作……没有错误
我有大约 10 种产品,每种都有近 200 种变化。我需要更新特定产品的销售价格,包括其所有变体。
问题是:
所有变体都有不同的价格。 没有输入促销价 - 所有促销价输入框都是空的。
我需要 SQL 运行 的解决方案,并通过采用正常价格并从中扣除 350 来更新特定产品的所有销售价格,或者
现阶段我不知道的任何其他方式,因为我已经尝试过许多解决方案,包括 Woocommerce 内置解决方案 "set sale price",但由于价格不一样,同样不起作用。
SELECT * FROM `wp_postmeta` WHERE post_id = "1097"
UPDATE `meta_id` = (SELECT * FROM `wp_postmeta` WHERE `meta_value` = _regular_price) - 350 WHERE `meta_key` = _sale_price
根据 Whosebug 上的研究编辑的查询表明,wp_postmeta table 保存产品值,wp_posts table 保存产品 ID。
这是我遇到的问题的屏幕截图:
你会看到 meta_id 不同而 post_id 相同,这是因为在 WordPress 中 post_id 是产品,在这种情况下有很多变体本身,meta_id 是 _sale_price 部分,我需要为每个变化更新
我希望这是有道理的!
试试这个 (其中行 AND p.ID = 19
==> 19 是您的可变产品 ID):
UPDATE wp_postmeta as pm
JOIN wp_postmeta as pm2 ON pm.post_id = pm2.post_id
SET pm.meta_value = ( pm2.meta_value - 350 )
WHERE pm.meta_key LIKE '_sale_price'
AND pm2.meta_key LIKE '_regular_price'
AND pm.post_id IN
( SELECT p2.ID
FROM wp_posts AS p
JOIN wp_posts AS p2 ON p2.post_parent = p.ID
WHERE p.post_type = 'product'
AND p.post_status = 'publish'
AND p.ID = 19
AND p2.post_type = 'product_variation'
AND p2.post_status = 'publish' );
已测试并有效(之前一定要备份)
So in this SQL query for a defined variable product ID, It will replace all product variations sale prices by the regular price minus 350 …
如您所见,它可以正常工作……没有错误