2014-03-19 29 views
0

我正在開發一個擴展插件,並希望每次用戶登錄後運行一些代碼。由於我擴展了一個插件,我想使用已經編寫的函數,其中使用is_user_logged_in()調用。如果我註冊了wp_login操作並在我的操作鉤子中運行is_user_logged_in,它將返回false,這聽起來很奇怪。 代碼我跑:wp_login和is_user_logged_in

add_action('wp_login', 'exhib_persist_cookies_after_login'); 

/* 
* This method will persist the favorite posts from the cookies just after someone logs  in. 
*/ 

function exhib_persist_cookies_after_login() { 
    //Check if all the required functions are available 
    if (is_user_logged_in()) { 
    error_log("persist: USER LOGGED IN"); 
    } 
    else { 
    error_log("persist: USER NOT LOGGED IN"); 
    } 
} 

並在日誌中我看到用戶沒有登錄

任何人都有線索爲什麼會發生?我以爲is_user_logged_in正在檢查auth cookie,這是根據doc已經設置wp_login被調用。

或者任何人有另一種想法我應該註冊哪些操作,只有當用戶登錄後纔會觸發,is_user_logged_in返回true?

+0

那是因爲我擴展了一個插件嗎?這個主插件在哪裏?我想你只顯示擴展名... – brasofilo

+0

我下載了這個插件https://wordpress.org/plugins/wp-favorite-posts/並編輯了wp-favorite-posts/wp-favorite-posts.php文件。我只是將上面的代碼添加到文件的底部。 –

回答

0

,你甚至看之前爲什麼修改不工作,你應該考慮改變如何你正在修改的插件。直接修改插件是很危險的。它打破了升級路徑,阻止您在未來應用升級,從而解決插件本身的關鍵問題。相同的功能可以通過創建一個簡單的插件來實現,該插件只包含您想要運行的代碼。

相關問題