Ultimate Member插件注册登录流程分析

Ultimate Member 是一个强大而灵活的WordPress插件,可以让用户在前台注册、登录、编辑个人资料等。该插件可以让你添加漂亮的用户个人资料到你的网站中,快速创建一个先进的社区。

本文我简单的记录下分析流程,流程简介就是:

注册、登录、用户中心页面都执行短代码[ultimatemember form_id=xxxx],提交后,触发钩子template_redirect 执行 form_init;form_init根据Ultimate Member 表单的mode分别执行相应函数,就这样。

以下是详细分析:

首先Ultimate Member(以下简称um)有注册功能,肯定是要往users表添加数据的,所以我是从后台添加用户就是user-new.php开始分析的,找到添加用户关键函数 wp_insert_user ,那么um应该也可能用了该函数,后搜索果然在文件 /ultimate-member/includes/core/um-actions-register.php,函数 um_submit_form_register 行401处找到;


很明显,下面是添加一个action钩子,um_submit_form_register ,然后自然地去搜看哪里调用了这个钩子,结果是木有找到的,后来用debug_backtrace跟踪调用栈找到是在 /ultimate-member/includes/core/class-form.php 文件 函数 form_init中行412处


看到这行代码,我是惊呆了,还有这种操作,其中的

$this->post_form['mode'] 


是在提交时带的form_id获取um的对应表单的mode,注册为register,登录是login...这样直接搜action um_subit_form_register肯定是搜不到的了;

那么继续跟,发现form_init是在template_redirect 钩子执行时触发,

这是Form类中的构造函数定义的,Form类在初始化um插件时实例化;


好,自此就分析完了,我估计登录和用户中心也是如此的,就没去细细分析了,因为

do_action( "um_submit_form_{$this->post_form['mode']}", $this->post_form );
这里是根据mode来决定执行哪个函数来处理的,有需要可自行跟踪分析下,对了,顺便说一下,有wp建站,二次开发,前端相关开发需求的可以联系我哈~
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值