从自定义表单注册后将用户重定向到上一页

时间:2019-04-21 作者:Lee Ness

我查看了这里,发现了很多关于这方面的引用,但没有一个对我有用,可能是因为我正在修改的自定义代码中一定有我不太理解的东西。从以前的帖子中获取数据后,我想我需要修改代码的原始部分:第124行

// Only show the registration form to non-logged-in members.
    if ( ! is_user_logged_in() ) {
        add_action( \'wp_footer\', \'wyz_add_pass_strength_script\' );

然后,注册表单有大量代码,结果在下面的第739行末尾

$creds = array();
$creds[\'user_login\'] = $registration_data[\'user_login\'];
$creds[\'user_password\'] = $registration_data[\'user_pass\'];
$creds[\'remember\'] = true;
$user = wp_signon( $creds, is_ssl() );

$url = apply_filters( \'wyz_after_login_redirect\', home_url( \'/user-account/\' ), $user, true );
$url = apply_filters( \'wyz_after_register_redirect\', $url, $user );
// Send the newly created user to the user account page after logging him in.
wp_redirect( $url );
exit;
当前代码将用户带到代码注释中所述的帐户页面。我想将用户带回原始页面,因此我添加了

$redirect = home_url() . \'?redirect_to=\' . esc_url($_SERVER["HTTP_HOST"] . $_SERVER["REQUEST_URI"]);
第126行,修改为

wp_redirect ($redirect)
在出口之前。它不起作用。我有点预料不到,但我不知道现在该怎么办。我省略了其余的代码,因为我想保持这个查询简洁,但如果需要,请告诉我,我会编辑这篇文章。

1 个回复
SO网友:MikeNGarrett

我在理解上下文方面有点困难,但看起来您所要做的就是使用您正在查看的代码中提供的过滤器。

$url = apply_filters( \'wyz_after_register_redirect\', $url, $user );

此挂钩使您有机会在执行重定向之前修改重定向url。您可以利用此功能将用户发送到您希望他们去的地方。

add_filter( \'wyz_after_register_redirect\', \'my_after_register_redirect\', 99, 2 );
function my_after_register_redirect( $url, $user ) {
    return home_url( $_SERVER[\'REQUEST_URI\'] );
}
您可以使用add_filter 对于您自己的功能,my_after_register_redirect. 当apply_filters 对于wyz_after_register_redirect 被调用。The returned string will be used in place of the $url value.

注意:请记住,请求URI可能不是您希望用户重定向到的url。你可能需要用另一种方式来解决这个问题。

相关推荐

标头和wp_reDirect不起作用。无法修改标题信息警告

是否有人知道无头重定向的其他方法();给我这个错误?wp_redirect 也不适合我。。。这是我遇到的错误:警告:无法修改标题信息-标题已由/home/my\\u site/public\\u html/wp content/themes/EHCC/page secure.php:8)在/home/my\\u site/public\\u html/wp content/themes/my\\u theme/template parts/secure表单中发送。php第8行<?php ob