如何检查Easy Digital Downloads客户是否已购买产品?
检查Easy Digital Downloads客户是否已购买产品的方法
针对当前登录用户
直接使用EDD内置的edd_has_user_purchased()函数,这是最常用的方案,示例代码:
// 替换为实际的产品ID $target_product_id = 123; if ( is_user_logged_in() && edd_has_user_purchased( get_current_user_id(), $target_product_id ) ) { // 用户已购买该产品,执行后续逻辑 echo '您已购买此产品'; } else { // 用户未登录或未购买该产品 echo '您尚未购买此产品'; }
该函数默认只识别**已完成(completed)**状态的订单,确保订单是有效交易。
针对指定用户ID检查
如果需要验证特定用户的购买记录,直接传入目标用户ID即可:
$target_user_id = 456; $target_product_id = 123; if ( edd_has_user_purchased( $target_user_id, $target_product_id ) ) { // 该用户已购买指定产品 }
检查用户是否有任意购买记录
若无需指定具体产品,仅确认用户是否有过购买行为,可使用edd_has_purchases():
$target_user_id = get_current_user_id(); if ( is_user_logged_in() && edd_has_purchases( $target_user_id ) ) { // 用户存在有效购买记录 }
扩展:包含其他订单状态
如果需要将**处理中(processing)**等状态的订单纳入检查范围,可添加第三个参数指定状态数组:
edd_has_user_purchased( $target_user_id, $target_product_id, array( 'completed', 'processing' ) );
内容的提问来源于stack exchange,提问作者ali
相关产品推荐
相关产品推荐

