我有大约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部件。
我希望这是合理的!
发布于 2018-04-09 16:29:03
尝试如下(其中,行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' );
测试和工作(总是在备份之前)
因此,在这个对定义的可变产品ID的SQL查询中,它将用常规价格减去350…替换所有产品变体销售价格。
,正如您所看到的,它可以工作,…无错误
https://stackoverflow.com/questions/49736722
复制相似问题