登录前记住页面,登录后重定向到该页面

时间:2018-07-21 作者:Patrick

我有一家woocommerce商店,只允许登录用户进行购买。如果用户尚未登录,我已将“添加到购物车”按钮替换为“登录”按钮。这会将他们带到(我的帐户)页面,在那里他们可以选择登录或注册。

然而,我想知道我是否可以更进一步,让wordpress在用户进入登录页面之前记住用户所在的页面。如果他们登录,它会将他们重定向回该页面。

我发现了这个脚本,如果用户单击产品/页面,它会将用户重定向到登录页面。然后,如果他们登录,它会将他们带回他们试图进入的页面。这接近于我想要做的,但不是在看到产品之前将他们带到登录页面。我希望他们能够看到产品。然后单击一个按钮,将他们带到((我的帐户页)),如果他们登录,它会将他们重定向回产品页。

Redirect user to original url after login?

任何帮助都将不胜感激。功能,插件,任何东西。

谢谢

2 个回复
最合适的回答,由SO网友:Patrick 整理而成

对于任何正在寻找解决方案的人。我男朋友和我用下面的剧本解决了这个问题。只需粘贴到函数中即可。任何woocommerce设置的php文件。

/** Log in redirect to previous page by portalpacific.net **/
// start global session for saving the referer url
function start_session() {
    if(!session_id()) {
        session_start();
    }
}
add_action(\'init\', \'start_session\', 1);

// get the referer url and save it to the session
function redirect_url() {
    if (! is_user_logged_in()) {
        $_SESSION[\'referer_url\'] = wp_get_referer();
    } else {
        session_destroy();
    }
}
add_action( \'template_redirect\', \'redirect_url\' );

//login redirect to referer url
function login_redirect() {
    if (isset($_SESSION[\'referer_url\'])) {
        wp_redirect($_SESSION[\'referer_url\']);
    } else {
        wp_redirect(home_url());
    }
}
add_filter(\'woocommerce_login_redirect\', \'login_redirect\', 1100, 2);

/** end here */
谢谢你让我们开始Karen。

SO网友:Karan

您可以使用wordpress引用函数。例如,通过单击“添加到购物车”按钮或任何按钮存储以前的URL,在会话中设置参考URL。登录或注册成功后,添加Woocommerce成功登录重定向到该URL。

有关更多信息,请阅读WordPress referrer URL,请阅读此处;

https://codex.wordpress.org/Function_Reference/wp_get_referer

对于Woocommerce登录重定向,请阅读此处;

https://stackoverflow.com/questions/29342186/woocommerce-after-login-redirect

结束

相关推荐

redirect to a custom page

我已经创建了一个插件插件替换“添加到购物车”按钮,弹出“继续”按钮。对于店主选择的每一种产品我希望在单击按钮时将用户重定向到我的自定义页面。我需要页面将显示不同产品id的不同内容。我应该将页面放在插件文件夹中的什么位置?如何重定向到它?我需要该页面将使用商店主题,例如,我希望该页面将显示产品页面的原样,通过获取url中的产品id…代码是用id替换按钮的功能。function replacing_add_to_cart_button( $button, $product ) { $produc