如何将redirect_to从登录传递到Wordpress中的注册页面

时间:2014-01-29 21:57:52

标签: php wordpress login

我正在尝试将redirect_to查询字符串传递给注册页面,因此没有登录名的个人需要注册,才能重定向回登录页面的引荐来源。我用了

wp_login_url(get_permalink($event->get_id())) 

将redirect_to查询字符串添加到登录页面,并尝试使用get get_query_var('redirect_to'),但没有任何反应。

任何人都知道如何在重定向到登记页面时添加登录查询字符串?

2 个答案:

答案 0 :(得分:0)

弄清楚,login.php中应用的过滤器允许调整网址。我把代码放在下面。唯一缺少的是一条消息,说明“您已成功注册,您的密码应该通过邮件到达”。

function custom_register_url( $registration_url ) {
    $registration_url = sprintf( '<a href="%s&%s">%s</a>', esc_url( wp_registration_url() ), $_SERVER["QUERY_STRING"], __( 'Register' ) );
    return $registration_url;
}
add_filter( 'register', 'custom_register_url' );

答案 1 :(得分:0)

如果您希望将redirect_to url从登录页面维护到登录页面,那么用户只需输入密码一旦通过电子邮件收到,仍然可以返回到原始的引荐来源,这是完整的溶液

function custom_register_url( $registration_url ) {
    $redirect_to = $_GET["redirect_to"];
    $eab_msg = $_GET["eab"];

    if( $redirect_to != "" && $eab_msg != ""  ) {
        // change query name values to prevent default behaviour (redirect_to to uct_redirect)
        $registration_url = sprintf( '<a href="%s&%s&%s">%s</a>', esc_url( wp_registration_url() ), "uct_redirect=" . urlencode($redirect_to), "uct_eab=" . urlencode($eab_msg), __( 'Register' ) );
    }

    return $registration_url;
}
add_filter( 'register', 'custom_register_url' );

function custom_registration_redirect($registration_redirect) {
    $redirect_to = $_GET["uct_redirect"];
    $eab_msg = $_GET["uct_eab"];

    if( $redirect_to != "" && $eab_msg != ""  ) {
        // change query names back to original values (uct_redirect to redirect_to)
        $registration_redirect = wp_login_url( $redirect_to ) . '&eab=' . $eab_msg;
    }

    return $registration_redirect;
}
add_filter( 'registration_redirect', 'custom_registration_redirect' );

将其放入functions.php中。希望这可以帮助别人干杯!