2013-07-18 90 views
2

假設我們有一個母親網站。然後我們在第三方網站上有一個用戶註冊表和一個正在處理整個註冊過程的用戶註冊系統,最後會在母站點的數據庫中發送用戶登錄信息(mysql插入,同樣沒有user_register功能)。由於有兩個完全不同的瀏覽器會話,因此在註冊期間或註冊後,不會在母網站上掛鉤任何操作。註冊後更改user_nicename

所以,讓我們說我們將存儲在登錄數據庫中的用戶喜歡[email protected](怪異,是),並具有一個名稱和出現像[email protected]

問題的user_nicename:

是什麼最好的方法,wp動作/函數被掛鉤,一旦用戶被存儲在母站點的數據庫中,編寫一個函數來更改用戶nicename,如aaa-bbb自動當然。

是否有一個函數/鉤建議這種情況下?

下面的代碼並沒有幫助我,因爲正如我上面說,我認爲當一個第三方網站的註冊被處理user_register動作不能被觸發:

add_action('user_register', 'myplugin_registration_save'); 

function myplugin_registration_save($user_id) { 
    $info = get_userdata($user_id); 
    $args = array(
     'ID'   => $user_id, 
     'user_nicename' => $info->first_name . '-' . $info->last_name 
    ); 
    wp_update_user($args); 
} 

回答

0

的措辭問題是真的很難理解。如果我正確閱讀,您有兩個網站。 Site One是人們註冊的地方。當他們在Site One上完成註冊時,通過執行直接的sql插入而不是使用任何本地WP功能,可以在Site 2數據庫中創建一個新用戶。

如果是這樣的話,爲什麼不在操作用戶登錄之前將其插入到站點Two db?你不能通過一個WordPress鉤子b/c來完成WordPress永遠不會被調用。掛鉤只是通過WordPress代碼散佈的回調函數。當發生某些事情時,就像創建一個新用戶一樣,有一個鉤子可以將一個功能分配給 - 給我發一封電子郵件。如果WordPress不處理新的用戶創建,那麼鉤子永遠不會被調用。

如果您在插入數據後必須執行操作,則可能需要查看使用每X時間運行一次的cron作業,以查找wp_users表中的新記錄。

+0

嗨。謝謝您的回答。我無法訪問網站One的代碼。是否有任何其他解決方案,而不是cron工作,以更改用戶已經插入到數據庫後,在網站二user_nicename? –

+0

您需要一些東西來觸發更改。在插入用戶之後,必須在兩個站點中的某個站點上運行某些內容,或者必須通過cron作業手動檢查更改。想想這樣:如果我在郵箱中放了一封信,你怎麼知道它在那裏?要麼我必須告訴你,我把它放在那裏,否則你必須打開郵箱然後看。這裏同樣的事情。有些事情必須發生,說「嘿,新用戶添加」,以便您可以運行您的代碼。 – wunderdojo

+0

是的,符合邏輯,但是如果只有一個簡單的mysql插入,我該如何編碼?我如何檢測? –