登录后,WordPress重定向到引用页面


Wordpress redirect to referring page after logging in

注意:我已经在Wordpress StackExchange中创建了相同的问题,但是我没有收到任何回复!对不起!

我没有使用任何自定义登录插件或任何定制代码。我的一些页面在一开始就有了这段代码。

<?php
    if(!is_user_logged_in())
        wp_redirect('/login/');
?>

因此,这不允许用户在未登录时查看页面。我有这些页面带有这段代码:

/wp-content/my-theme/my-account/
/wp-content/my-theme/my-account/world.php
/wp-content/my-theme/my-account/subscription.php
/wp-content/my-theme/my-dashboard.php
/wp-content/my-theme/my-files.php

现在,当用户转到上述任何页面时,无需登录,它会重定向到登录页面,当用户登录时,它会将他们带到my-account/页面。

我想更改当前场景,使用户重定向到他来自的引用页面。我尝试了以下方法,但从未奏效。

使用HTTP_REFERRER

login/形式中,我放置了这段代码:

<input type="hidden" name="redirect" value="<?php echo $_SERVER['HTTP_REFERER']; ?>" />

黑客functions.php

functions.php中,我放置了这段代码:

if ( (isset($_GET['action']) && $_GET['action'] != 'logout') || (isset($_POST['login_location']) && !empty($_POST['login_location'])) ) {
        add_filter('login_redirect', 'my_login_redirect', 10, 3);
        function my_login_redirect() {
                $location = $_SERVER['HTTP_REFERER'];
                wp_safe_redirect($location);
                exit();
        }
}

引用:

  • 登录后将wordpress重定向回引用页面
  • WordPress提示:登录后重定向到上一页
<小时 />

我也尝试过这些,但失败了:

  • 使用自定义登录表单登录后将用户重定向到引荐来源页面
  • 登录后将用户重定向到原始网址?

什么都没有解决。如果需要,我很乐意提供更多详细信息。提前谢谢。 :)

<小时 />

到目前为止我的工作...

我以这种方式修改了代码:

<?php
    if(!is_user_logged_in())
        wp_redirect('/login/?redirect_to=' . $_SERVER["REQUEST_URI"]);
?>

这将以这种方式呈现登录页面:

/login.php?redirect_to=/my-account/subscription.php

这足以让我进行身份验证和重定向。但是我需要找到真正重定向发生的位,我想使用 redirect_to 参数重定向它!

登录过程通过 AJAX 处理。发布值的函数不考虑redirect_to。JS 文件中的以下代码始终重定向到/my-account。所以现在当 AJAX 函数返回时,您可以获取隐藏字段的值redirect_to然后将用户重定向到那里。

window.location = "/my-account/";