WooCommerce中如何查询customer角色用户的最后下单日期并向用户发邮件
关联WooCommerce订单表查询客户最后下单日期方案
首先明确WooCommerce默认表结构逻辑:订单数据存储在wp_posts表中,post_type = 'shop_order'标识订单类型,post_author字段关联下单用户ID,post_date为订单创建时间。
你可以通过子查询先聚合每个用户的最新订单时间,再和现有客户查询语句关联,完整SQL如下:
SELECT u.ID, u.user_nicename, u.user_email, o.last_order_date FROM wp_users u INNER JOIN wp_usermeta um ON u.ID = um.user_id LEFT JOIN ( SELECT post_author, MAX(post_date) AS last_order_date FROM wp_posts WHERE post_type = 'shop_order' -- 可选:只统计有效订单,排除取消、退款等状态 -- AND post_status IN ('wc-completed', 'wc-processing', 'wc-on-hold') GROUP BY post_author ) o ON u.ID = o.post_author WHERE um.meta_key = 'wp_capabilities' AND um.meta_value LIKE '%customer%' ORDER BY u.user_nicename
说明
- 使用
LEFT JOIN关联订单子查询,会保留所有符合条件的客户用户,从未下过单的用户last_order_date字段会返回NULL;如果只需要查询有下单记录的用户,把LEFT JOIN改成INNER JOIN即可 - 子查询中用
MAX(post_date)聚合每个用户的最晚订单创建时间,搭配GROUP BY post_author保证每个用户只返回一条最新订单记录 - 你可以根据需求添加订单状态过滤条件,只统计你认为有效的订单记录
内容的提问来源于stack exchange,提问作者Piotr Szary
相关产品推荐
相关产品推荐

