2017-03-03 51 views
0

我想添加一個功能bp_core_activated_user,在這裏我希望它做到以下幾點:wp_set_auth_cookie不記錄用戶

  1. 激活用戶
  2. 登錄用戶
  3. 將用戶重定向到他們的個人資料編輯屏幕

我沒有任何問題與1,也不與3,但由於第二步不工作,它不會正確執行#3。

這裏是我的代碼示例

function auto_login_activation($user_id, $key, $user) { 
$bp = buddypress(); 
$bp->activation_complete = true; 
//now login and redirect 

$user = get_user_by('id', $user_id); 
if($user) { 
    wp_set_current_user($user_id, $user->user_login); 
    wp_set_auth_cookie($user_id); 
} 

bp_core_redirect(bp_core_get_user_domain($user_id) .$bp->profile->slug .'/edit/'); 
} 
add_action('bp_core_activated_user', 'auto_login_activation', 0, 3); 

如果我禁用重定向,這說明我的屏幕上登錄(會顯示註銷,並隱藏登錄和註冊),但是當我去頁面,只爲登錄用戶,它表明我已註銷。

我知道第1步正在工作,因爲用戶在激活時收到自動歡迎電子郵件。第2步是它跌倒的地方,第3步,我在我的代碼中的其他地方使用bp_core_redirect,沒有問題 我一直在使用插件來達到這個目的,但它也停止工作,並且基本上是相同的代碼。

回答

1

您需要使用wp_login行動掛鉤這樣的:

do_action('wp_login','username','user_email'); 
wp_set_current_user('user_id'); 
wp_set_auth_cookie('user_id'); 
wp_redirect('url'); 
+0

這是行不通的。它仍然要求我登錄(我重定向到他們的路徑是無法訪問,除非他們登錄)我也使用自定義登錄屏幕,這將有所作爲(我重定向遠離wp-login.php) –

+0

登錄腳本後,嘗試重定向到其他不需要登錄的頁面。然後轉到任何登錄頁面。 –

+0

這似乎也沒有區別。用戶目前仍未登錄。 –