我使用Wordpress作为一个需要所有用户登录才能访问的应用程序。我一直用来执行此操作的功能是
function logoutApp_redirect() {
global $post;
if( ! is_user_logged_in() ){
wp_redirect( home_url() . '/dashboard' );
}
}
add_action( 'template_redirect', 'logoutApp_redirect' );
if
用户已注销,然后我想将其返回到之前所在的页面。例如,如果某个用户在home_url() . '/page1' );
上,并且他们已注销不活动,则会在登录后将其返回此页面。
我的一些想法是首先使用 AJAX 并覆盖登录(因此他们永远不会离开他们所在的页面)并在登录时删除叠加层。这是我的终极解决方案,但为了安全起见,任何具有 inspect 知识的人都可以隐藏叠加层以查看隐私信息。
因此,将重定向添加到wp-login
并将我的第二个想法添加到用户注销时的原因将被重定向,并且在登录时它们将返回到上一页。这是更好的安全方法,但这意味着任何未存储到 DB 的信息都将丢失。
如何解决解决这些问题的解决方案?
请注意我不希望将插件作为解决方案,并且希望在我的functions.php
答案 0 :(得分:0)
您可以使用PHP $_SESSION
if( ! is_user_logged_in() ){
$_SESSION['user_previous_page'] = $server['REQUEST_URI'];
wp_redirect( home_url() . '/dashboard' );
}
然后在登录后,您可以将用户发送到上一页
wp_redirect(home_url() . $_SESSION['user_previous_page']);