WooCommerce 检查用户是否有未完成支付的订单

WooCommerce 是非常流行的 wordpress 商城插件,在实际使用中,可能同一个用户提交了订单以后,出于某些原因没有完成付款操作,然后再次提交了新订单。

如果你想避免这个问题,可以检查下当前用户(通过邮箱地址判断)是否有未完成支付的订单,如果有,就提示他登录账户完成支付,如下图所示:
WooCommerce 检查用户是否有未完成支付的订单-云模板实现的完整代码如下所示:

  1. /**
  2.  * @snippet       Deny Checkout to User With Pending Orders | WooCommerce
  3.  * @how-to        Get CustomizeWoo.com FREE
  4.  * @sourcecode    https://businessbloomer.com/?p=55387
  5.  * @author        Rodolfo Melogli
  6.  * @testedwith    WooCommerce 3.0.5
  7.  */
  8. 
    
  9. add_action('woocommerce_after_checkout_validation', 'bbloomer_deny_checkout_user_pending_orders');
  10. 
    
  11. function bbloomer_deny_checkout_user_pending_orders( $posted ) {
  12. 	global $woocommerce;
  13. 	$checkout_email = $posted['billing_email'];
  14. 	$user = get_user_by( 'email', $checkout_email );
  15. 
    
  16. 	if ( ! empty( $user ) ) {
  17. 		$customer_orders = get_posts( array(
  18. 			'numberposts' => -1,
  19. 			'meta_key'    => '_customer_user',
  20. 			'meta_value'  => $user->ID,
  21.         'post_type'   => 'shop_order', // WP订单文章类型
  22.         'post_status' => 'wc-pending' // 获取未完成支付的订单
  23.     ) );
  24. 		foreach ( $customer_orders as $customer_order ) {
  25. 			$count++;
  26. 		}
  27. 		if ( $count > 0 ) {
  28. 			wc_add_notice( 'Sorry, please pay your pending orders first by logging into your account', 'error');
  29. 		}
  30. 	}
  31. }

先通过邮箱获取到用户 id,然后查询这个用户是否有未完成支付的订单,如果有,就返回错误提示。

原创文章,作者:DavidWu,如若转载,请注明出处:https://www.davidwu.net/archives/81790

WordPress安全防护插件
服务项目 服务内容 收费标准(元)
主题/插件汉化 汉化团队WordPress主题/插件,翻译率95% (以标的主题/插件的句子数量为准)
服务器环境配置 基于您现有服务器,搭建配置网站运行环境,结合我们多年来实战经验,可完美支持WordPress等PHP程序运行,并配置伪静态规则、优化目录权限等问题。服务器我们强烈推荐使用Linux系统。 100元/次
网站托管 若贵站目前尚无技术人员,无法完成服务器环境配置,可选择我们的网站托管服务,直接交付正常运行的WordPress站点,并且无需担心服务器的后续维护工作,一切都由我们来帮您完成。 标配套餐:1000元/年/站点 高配套餐:联系客服获取
网站加速优化 从服务器后端配置优化到WordPress数据库缓存、前端页面缓存、JS和CSS压缩合并,全方位优化网站加载速度,实现秒开。(此服务仅针对(云)服务器/VPS) 500元/次(仅站内优化200元/次)
主题配置 本站所有主题均支持,可快速实现,若有任何问题可以咨询客服解决,若您希望我们提供配置服务,可选购此服务。 英文主题安装 60元/次 汉化主题安装 30元/次
HTTPS配置 HTTPS已经不断普及,并且有着更高的安全性以及SEO上的优待。该服务收取的为服务费,SSL证书产生的费用请自行承担。 100元/次
网站搬家 迁移网站所有文件和数据库信息、网站相关配置的调整、以及迁移中的疑难问题故障排除。 标准收费:500元/次 若网站数据量大,需协商
网站运维 提供整站的运维服务,保证网站正常运行。包含:网站故障定位及排除、网站数据备份和恢复、网站攻击及木马等问题的处理等 标准收费:2000元/年 IP 5000以上需协商

发表评论

电子邮件地址不会被公开。 必填项已用*标注

51建站客服微信二维码
点击这里购买