我有一個WordPress網站,任何人都可以查看某些/大多數網頁(未登錄)。但是,用戶可以請求擁有自己的專用頁面,因此我設置了一個只能由特定人員訪問的頁面,然後通過電子郵件將URL發送給他們。他們點擊電子郵件中的URL並通過登錄鏈接發送他們的頁面。一旦登錄成功,我希望用戶回到他們的私人頁面,但目前他們只是在他們的個人資料頁面結束。如何在登錄後將WordPress用戶重定向到上一頁
如何在登錄後將用戶重定向到他們的私人頁面?
我已經嘗試了很多不同的代碼位,但沒有一個適用於這種情況。
我目前的代碼如下。但是這只是將用戶返回到登錄頁面(即使登錄成功)。
// Function to redirect after login
add_filter('login_redirect', 'redirect_previous_page', 10, 1);
function redirect_previous_page($redirect_to){
global $user;
$request = $_SERVER["HTTP_REFERER"];
if (in_array($user->roles[0], array('administrator'))) {
return admin_url();
} elseif (in_array($user->roles[0], array('subscriber'))) {
return $request;
}
return $redirect_to;
}
感謝您的支持。不幸的是,它不適用於我的用例。每個用戶都有自己的專用頁面,因此重定向到通用頁面將無濟於事。我怎麼才能重定向到上一頁? – timhuk
使用http_referer的問題是它將重定向到最後一頁,當調用此函數時,最後一頁是登錄頁面。所以你最終將用戶發送回登錄屏幕。用戶私人頁面的網址是什麼?我改變了上面的例子,舉一個你可以做什麼的更好的例子 –
私人網頁的網址類似於:mysite.co.uk/?page_id=77。每個用戶一頁。 – timhuk