我正在开发自定义 WordPress 登录模块,但遇到了一些问题。如果用户在网站上完成了他的调查,他将使用他的电子邮件地址进行注册,然后密码重置链接将发送到用户的电子邮箱。如果他点击链接,他将被重定向到重置密码面板。一旦他设置了密码,他就会被重定向到登录面板,但我想让他自动登录并重定向到特定页面。所以这个想法是删除不必要的登录步骤。是否可以?谢谢
我终于用下面的代码自己管理了它。希望此代码对其他人有帮助!
add_action( 'validate_password_reset', 'rsm_redirect_after_rest', 10, 2 );
function rsm_redirect_after_rest($errors, $user) {
if ( ( ! $errors->get_error_code() ) && isset( $_POST['pass1'] ) && !empty( $_POST['pass1'] ) ) {
reset_password( $user, $_POST['pass1'] );
list( $rp_path ) = explode( '?', wp_unslash( $_SERVER['REQUEST_URI'] ) );
$rp_cookie = 'wp-resetpass-' . COOKIEHASH;
setcookie( $rp_cookie, ' ', time() - YEAR_IN_SECONDS, $rp_path, COOKIE_DOMAIN, is_ssl(), true );
wp_set_current_user( $user->ID );
wp_set_auth_cookie( $user->ID );
do_action( 'wp_login', $user->user_login, $user );//`[Codex Ref.][1]
wp_redirect( home_url() );
exit;
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1180 次 |
| 最近记录: |