1. 程式人生 > >Ultimate Member外掛註冊登入流程分析

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建站,二次開發,前端相關開發需求的可以聯絡我哈~

相關推薦

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

Ultimate Member 是一個強大而靈活的WordPress外掛,可以讓使用者在前臺註冊、登入、編輯個人資料等。該外掛可以讓你新增漂亮的使用者個人資料到你的網站中,快速建立一個先進的社群。本文我簡單的記錄下分析流程,流程簡介就是:註冊、登入、使用者中心頁面都執行短程式

使用者註冊登入案例分析以及簡單實現

使用者註冊登入案例 功能分析 本案例主要是使用者註冊和登入功能。根據使用者輸入的使用者名稱和密碼判斷使用者能否登入進去。使用者的資訊儲存在userInformation.txt檔案中。 分析順序如下: 1. 分包和建類 2. 實現功能 分

SSO單點登入教程(二)單點登入流程分析

作者:藍雄威,叩丁狼教育高階講師。原創文章,轉載請註明出處。一、簡介單點登入(Single Sign On),簡稱為 SSO,是目前比較流行的企業業務整合的解決方案之一。SSO的定義是在多個應用系統中,使用者只需要登入一次就可以訪問所有相互信任的應用系統。二、應用場景如公司有

模態框外掛(彈窗功能比如註冊登入等)

基本框架 頭部都寫什麼? 其他部分的簡單實現 ** 如何點選按鈕,讓這個彈窗出來呢? ** 1,先宣告一個按鈕 2,然後給模態框標識唯一的id,來區分不同的模態框 其他注意點 <div class="modal fade" id="m

註冊登入專案開發流程和包間的呼叫關係

描述專案開發的流程 首先要進行可行性研究;然後進行需求分析,對應要寫出需求分析文件;再同時進行美工設計和資料庫設計,對應寫出資料庫設計文件;再進行概要設計,對應寫出概要設計文件;接著進行詳細設計,對應要寫的是詳細分析文件;分析都進行完了以後,要開始進行編碼;將編碼完成後,要對整個專案進行測試

註冊登入的設計:基於33款APP的註冊登入分析

對33款APP進行7個維度的對比分析後,為自己解決了有關注冊登入設計的疑惑:並不是所有的應用都有設計註冊登入的必要性;註冊設計包括了路徑設計、流程、內容設計……你在設計時是否也出現過類似的疑惑呢?不妨來看看作者對這些問題的總結。 寫這篇文章,主要是想解答自己

Linphone-android 登入過程增加自定義訊息頭流程分析

註冊增加訊息頭 在saveNewAccount()中; 新增自定義訊息頭 LinphoneProxyConfig prxCfg = lc.createProxyConfig(identityAddr.asString(), proxyAddr.asSt

NPAPI外掛開發詳細記要:外掛執行流程分析

NPAPI外掛開發詳細記錄:外掛執行流程分析本文詳細分析外掛的程式碼是如何執行的,主要分析np_entry.cpp、npn_gate.cpp和npp_gate.cpp.希望能夠有所收穫。 在windows平臺下,外掛就是一個dll,注意到這個dll的def檔案內容是:LIB

NPAPI 外掛執行流程分析

本文詳細分析外掛的程式碼是如何執行的,主要分析np_entry.cpp、npn_gate.cpp和npp_gate.cpp.希望能夠有所收穫。 在windows平臺下,外掛就是一個dll,注意到這個dll的def檔案內容是: NP_GetEntryPoints  NP_In

IMS的註冊流程分析

本次的IMS註冊流程分析基於MT6580_O平臺。關於IMS的相關流程,MTK釋放的文件講得已經蠻詳細了,本次記錄的內容純屬在文件的基礎上加上自己的理解,以便日後的複習,僅供參考。 IMS的整體框架圖如下: 其中MAL層以so庫檔案的形式存在,程式碼

基於GBT28181:SIP協議元件開發-----------第三篇SIP註冊流程分析實現

原創文章,引用請保證原文完整性,尊重作者勞動,原文地址http://www.cnblogs.com/qq1269122125/p/3941172.html,qq:1269122125。 上兩章節簡要的講解了SIP元件開發介面和開發環境的搭建。在本節將實現Linux 3

Nacos(一)原始碼分析Nacos註冊示例流程

nacos官方地址:https://nacos.io/zh-cn/ 大家可以看一下nacos的中文手冊以及官方原始碼,博主就不帶領大家快速入門 了,官方文件中都有而且非常標準,比其他部落格寫的好多了並且還是實時更新的。 先看一下博主給大家畫的流程圖,掌握一下大概的基本流程,好理解,博主給大家講原始碼: htt

Nacos(二)原始碼分析Nacos服務端註冊示例流程

  上回我們講解了客戶端配置好nacos後,是如何進行註冊到伺服器的,那我們今天來講解一下伺服器端接收到註冊例項請求後會做怎麼樣的處理。   首先還是把博主畫的原始碼分析圖例發一下,讓大家對整個流程有一個大概的理解:圖示流程地址:https://www.processon.com/view/link/5f7e

newlib 中的 crt0 流程分析

gets eno -s style and 條件判斷 obj als example 最近對 newlib 中的啟動代碼 crt0 產生了興趣,於是就分析了下其代碼。crt0 的源碼位於 libgloss/arm/crt0.S,為了兼容各種 ARM 架構,crt0.S 中有

PowerManagerService流程分析

other nes func 靜下心來 沒有 light 事情 統一管理 mon 一、PowerManagerService簡介   PowerManagerService主要服務Android系統電源管理工作,這樣講比較籠統,就具體細節上大致可以認為PowerManage

翻翻git之---自己定義郵件發送buttonSendButton(流程分析,實現思路能夠學習下)

現象 date() 加速 lag restart xtend fas trace str 轉載請註明出處:王亟亟的大牛之路 距離過春節還有1天。繼續這一系列的git翻料之旅。 昨天的工具類真的非常棒,這裏再推崇一下 傳送門:http://blog.c

Android5 Zygote 與 SystemServer 啟動流程分析

進一步 null 正常的 rtb 這樣的 ket constant vml resp Android5 Zygote 與 SystemServer 啟動流程分析 Android5 Zygote 與 SystemServer 啟動流程分析 前言 zy

深入了解View(一)—— measure測量流程分析

sans asc res markdown pla 轉換成 高亮 trac 體驗 歡迎使用Markdown編輯器寫博客 本Markdown編輯器使用StackEdit改動而來,用它寫博客。將會帶來全新的體驗哦: Markdown和擴展Markdow

開機啟動流程分析

boot 啟動流程 本節索引 在對系統啟動流程進行分析的時候,我想你一定是對系統有了一定的了解。系統的啟動目前來講大都為串行接力的方式來啟動。而所謂的並行方式的啟動方式也是某一個階段的並行。所以我按照系統啟動的順序來把文章連綴起來。 * BIOS階段 * BootLoader階段

kexec 內核快速啟動流程分析

-- 令行 並且 內存 tab 執行過程 family use -a 一、命令行 1. kexec -l $kpwd --append="$arg" 其中$kpwd =目標內核的路徑   $arg =傳給內核的參數,與/proc/cmdline一致時表示重啟現有內核