我查看了这里,发现了很多关于这方面的引用,但没有一个对我有用,可能是因为我正在修改的自定义代码中一定有我不太理解的东西。从以前的帖子中获取数据后,我想我需要修改代码的原始部分:第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)
在出口之前。它不起作用。我有点预料不到,但我不知道现在该怎么办。我省略了其余的代码,因为我想保持这个查询简洁,但如果需要,请告诉我,我会编辑这篇文章。
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。你可能需要用另一种方式来解决这个问题。