我尝试使用以下 SQL 查询根据订单项 ID 更新 WooCommerce 订单状态:
UPDATE wp_posts set post_status = 'wc-completed'
FROM wp_posts
LEFT JOIN wp_postmeta ON wp_posts.ID = wp_postmeta.post_id
LEFT JOIN wp_woocommerce_order_itemmeta ON wp_postmeta.post_id = wp_woocommerce_order_itemmeta.order_item_id
LEFT JOIN wp_woocommerce_order_items ON wp_posts.ID = wp_woocommerce_order_items.order_item_id
WHERE wp_posts.post_type = "shop_order"
AND wp_woocommerce_order_items.order_item_id = 68792
但是它会抛出错误。我哪里错了?
您的查询中有多个错误。
请注意,不需要表
wp_postmeta
和 wp_woocommerce_order_itemmeta
,并且还缺少需要更新的表 wp_wc_orders
。
尝试以下方法:
UPDATE wp_posts p
INNER JOIN wp_wc_orders o ON p.ID = o.id
INNER JOIN wp_woocommerce_order_items oi ON p.ID = oi.order_id
SET p.post_status = 'wc-completed', o.status = 'wc-completed'
WHERE p.post_type = 'shop_order'
AND oi.order_item_id = 68792;
已测试且有效 (如果订单商品 ID
68792
存在).