我想每天在WooCommerce商店上更新常规价格。正常价格应计算并保存为“产品重量” *“基准价格”。基本价格是一个自定义字段(base_price),每天都会为所有产品更新,包括后端的变化(使用sql查询),该产品也存储在wp_postmeta表中。
常规价格=产品重量(_重量)*基本价格(基本价格)
我正在使用WordPress 5.2.2和WooCommerce 3.6.5。
我尝试运行以下SQL
UPDATE `wp_postmeta` AS a,
`wp_postmeta` AS b
SET a.`meta_value`= (SELECT b.`meta_value` FROM `wp_postmeta` WHERE b.`meta_key`= "_weight") * (SELECT b.`meta_value` FROM `wp_postmeta` WHERE b.`meta_key`= "base_price")
AND b.`meta_key` = "_regular_price"
AND b.`post_id` IN
(SELECT `ID`
FROM `wp_posts`
WHERE `post_type` = 'product'
OR `post_type` = 'product_variation'
AND `post_status` = 'publish');
在子查询中返回以下错误时返回多行。如果我们用Post_id添加另一个条件,那么它将用相同的值更新所有记录。示例-(从meta_value
中的b。wp_postmeta
=“ _weight”和b。meta_key
= 123中选择b。post_id
错误-子查询返回多于1行
我遇到过类似的问题,其中常规价格是用销售价格-Copy WooCommerce products Sale prices to regular prices and reset Sale prices更新的。但是我要根据相同产品的其他属性(例如重量和底价)更新常规价格。