我大约有10种产品,每种产品都有近200种变化。我需要更新特定产品的销售价格,包括所有产品的价格。
问题是:
所有变体都有不同的价格。没有输入销售价格-所有销售价格输入框均为空。
我需要一个SQL解决方案来通过采用正常价格并从中扣除350来运行和更新特定产品的所有销售价格,或者
我在此阶段不知道的任何其他方式,因为我尝试了许多解决方案,包括Woocommerce内置的解决方案“设置销售价格”,但由于价格不一样,因此同样无法使用。
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
根据对Stackoverflow的研究,经过编辑的查询表明wp_postmeta表保存产品的值,而wp_posts表保存产品ID的值。
这是我面临的问题的屏幕截图:
您会看到meta_id和post_id是不同的,这是因为在WordPress中post_id是产品,在这种情况下,它本身具有很多变体,并且meta_id是_sale_price部分,我需要更新FOR FOR EACH VARIATION
我希望这是有道理的!
尝试以下操作(第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' );
经过测试并可以正常工作(始终进行备份)
因此,在此SQL查询中,定义了一个可变产品ID,它将用正常价格减去350来替换所有产品变体销售价格…
如您所见,它有效……没有错误
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句