我正在尝试将redirect_to查询字符串传递给注册页面,因此没有登录名的个人需要注册,才能重定向回登录页面的引荐来源。我用了
wp_login_url(get_permalink($event->get_id()))
将redirect_to查询字符串添加到登录页面,并尝试使用get get_query_var('redirect_to'),但没有任何反应。
任何人都知道如何在重定向到登记页面时添加登录查询字符串?
答案 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中。希望这可以帮助别人干杯!