Ultimate Member外掛程式註冊登入流程分析

2021-08-19 15:48:08 字數 1559 閱讀 7516

ultimate member 是乙個強大而靈活的wordpress外掛程式,可以讓使用者在前台註冊、登入、編輯個人資料等。該外掛程式可以讓你新增漂亮的使用者個人資料到你的**中,快速建立乙個先進的社群。

本文我簡單的記錄下分析流程,流程簡介就是:

註冊、登入、使用者中心頁面都執行短**[ultimatemember form_id=***x],提交後,

觸發鉤子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處

看到這行**,我是驚呆了,還有這種操作,其中的

是在提交時帶的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來決定執行哪個函式來處理的,有需要可自行跟蹤分析下,對了,順便說一下,有wp建站,二次開發,前端相關開發需求的可以聯絡我哈~

插值查詢 插值搜尋

這是一種和二分比較相似的查詢的演算法,不過不同的是,對於分布比較均勻的較大的陣列,插值查詢有時能夠一次就搜尋到位.為什麼能夠這麼快呢 看網上沒有什麼關於這種演算法的描述,我就來描述一下吧.首先要知道一點,這種搜尋方式只能夠針對順序表進行,再乙個要理解順序表中的乙個特點,在順序表中查詢是否存在乙個值,...

Matlab資料插值 內插 外插

插值就是已知一組離散的資料點集,在集合內部某兩個點之間 函式值的方法。一 一維插值 插值運算是根據資料的分布規律,找到乙個函式表示式可以連線已知的各點,並用此函式表示式 兩點之間任意位置上的函式值。插值運算在訊號處理和影象處理領域應用十分廣泛。1 一維插值函式的使用 若已知的資料集是平面上的一組離散...

Matlab資料插值 內插 外插

matlab資料插值 內插 外插 插值就是已知一組離散的資料點集,在集合內部某兩個點之間 函式值的方法。一 一維插值 插值運算是根據資料的分布規律,找到乙個函式表示式可以連線已知的各點,並用此函式表示式 兩點之間任意位置上的函式值。插值運算在訊號處理和影象處理領域應用十分廣泛。1 一維插值函式的使用...