用户名或电子邮件不存在后,wordpress,前端重置密码页面重定向

时间:2014-02-08 17:42:05

标签: php wordpress filter custom-error-handling

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

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

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

非常感谢任何帮助

1 个答案:

答案 0 :(得分: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;   
    }
}