1

我有一个简单的问题。我需要创建一个前端页面,该页面将使用 wordpress 处理重置密码功能,因此它基本上与 wordpress 默认页面相同,只是它位于前端。

但是有一件事我想不通,当用户在前端重置密码时,但他或她输入的用户名或电子邮件在数据库中不存在,所以现在我们需要给出错误消息。目前如果发生这种情况,它将重定向到管理员 wp-login.php,这不好,我希望它重定向到带有参数的前端页面,并且用户不应该看到管理页面

有什么解决方案吗,这可能很简单,但是我一直在寻找一段时间,找不到答案

非常感谢您的帮助

4

1 回答 1

2

好吧,让我回答我的问题,基本上使用“lostpassword_post”在发送重置帖子之前验证用户名或密码,然后如果出错,重定向。

add_action('lostpassword_post', 'validate_reset', 99, 3);

function validate_reset(){
    if(isset($_POST['user_login']) && !empty($_POST['user_login'])){
        $email_address = $_POST['user_login'];
        if(filter_var( $email_address, FILTER_VALIDATE_EMAIL )){
            if(!email_exists( $email_address )){
                wp_redirect( 'register/?userexist=false' );
                exit;
            }
        }else{
                $username = $_POST['user_login'];
                if ( !username_exists( $username ) ){
                    wp_redirect( 'register/?userexist=false' );
                    exit;
                }
            } 

    }else{
        wp_redirect( 'register/?lostempty=true' );
        exit;   
    }
}
于 2014-02-09T02:40:32.977 回答