2015-12-21 98 views
2

我在WORDPRESS中使用Ultimate成員插件。並且該插件具有在FRONT END上切換用戶帳戶的功能,通過單擊以該用戶身份登錄但突然停止工作,並且它不工作。WordPress的wp_set_current_user不工作

我發現,它最終使用這些文件中的代碼:

wp_set_current_user($user_id); 
wp_set_auth_cookie($user_id, $rememberme); 
// echo get_current user_id(); 
// here i am getting new user id; 
$redirect_to = 'some url'; 
wp_safe_redirect($redirect_to); 
exit(); 

但重定向後,我沒有被切換到新的用戶,但管理之前它返回新的用戶ID。

因爲我沒有使用任何緩存。

在此先感謝。

回答

0

同樣的麻煩。沒有得到任何運氣。我想這樣的代碼:

global $current_user; 
$ID = $current_user->ID; 
unset($current_user); 
nocache_headers(); 
wp_clear_auth_cookie(); 
wp_set_current_user($ID, $username); 
do_action('wp_login', $username); 
wp_set_auth_cookie($ID, true); 

也許,它會幫助別人做的東西了))

我不知道,但我想我們應該清除舊的全局值和舊餅乾。

PS我使用的是BuddyPress插件,但我不認爲它在這種情況下很重要。

0

答案是因爲您正在重定向,並且WebKit中有一個關於在重定向響應期間設置cookie的錯誤。你可以通過允許頁面完全響應然後觸發來自javascript的重定向來解決這個問題 - 或者通過讓頁面重定向來設置當前用戶(可能來自會話變量)。

Safari Doesnt Set Cookie But IE-FF does

WebKit Bug Report