我使用WooCommerce并且无法检查订单是否为来宾客户。
使用$order = new WC_Order($orderid);
尝试一无所获。
感谢任何帮助。
谢谢!
答案 0 :(得分:0)
您可以尝试获取结算电子邮件并检查用户是否已注册:
$order = new WC_Order($order_id);
$user = get_user_by('email', $order->billing_email);
if(isset($user->ID)){
//Registered
}else{
//Guest
}
答案 1 :(得分:0)
看起来这样做的最佳方法(至少从WC 3.3.3开始)是使用WC_Order->get_user():"获取与订单相关联的用户。对客人来说是假的。"
它会为登录的客户返回一个WP_User,或者为访客结帐返回false
。
请注意,如果您需要可靠地确定所使用的实际结帐方法,则不依赖于WordPress的get_user_by()
功能;这将告诉您与订单中的电子邮件匹配的用户帐户是否存在,而不是它是否实际用于下订单。拥有帐户的人如果不登录,仍可以作为访客订购;这种区别是否重要可能取决于你想要完成的事情。