Custom page password recovery

时间:2016-11-13 作者:Dayglor

我正在构建一个用于密码恢复的自定义页面。。。

我得到“login\\u form\\u lostpassword”操作来重定向自定义页面。

function new_lost_password_form()
{

    if ( \'GET\' == $_SERVER[\'REQUEST_METHOD\'] ) {
        if (is_user_logged_in()) {
            $this->redirect_logged_in_user();
            exit;
        }

        wc_get_template(\'page-templates/lost-password-form.php\');
        exit;
    }
}
add_action(\'login_form_lostpassword\', \'new_lost_password_form\');
当我尝试恢复密码时,一切正常,但当输入为空时出现错误,wordpress将重定向到默认恢复页面。

这就是wordpress读取wp登录名的原因。php优先。。。

正如我将使wordpress覆盖wp登录中恢复页面的内容。php?

块必须覆盖:

case \'lostpassword\' :
case \'retrievepassword\' :

    if ( $http_post ) {
        $errors = retrieve_password();
        if ( !is_wp_error($errors) ) {
            $redirect_to = !empty( $_REQUEST[\'redirect_to\'] ) ? $_REQUEST[\'redirect_to\'] : \'wp-login.php?checkemail=confirm\';
            wp_safe_redirect( $redirect_to );
            exit();
        }
    }

    if ( isset( $_GET[\'error\'] ) ) {
        if ( \'invalidkey\' == $_GET[\'error\'] ) {
            $errors->add( \'invalidkey\', __( \'Your password reset link appears to be invalid. Please request a new link below.\' ) );
        } elseif ( \'expiredkey\' == $_GET[\'error\'] ) {
            $errors->add( \'expiredkey\', __( \'Your password reset link has expired. Please request a new link below.\' ) );
        }
    }
在文件wp login中。php

1 个回复
最合适的回答,由SO网友:sMyles 整理而成

您只需在返回任何错误之前添加自己的操作,如果有错误,请重定向回页面并显示错误

add_action( \'lostpassword_post\', \'smyles123_check_for_errors\' );

function smyles123_check_for_errors( $errors ){

    if ( $errors->get_error_code() ){
        // REDIRECT BACK TO YOUR PAGE TO SHOW ERRORS
        // You can probably just append the error to the URL you redirect back to, but you need to set $redirect_to value
        wp_safe_redirect( $redirect_to );
        exit();
    }

}
您也可以创建自己的函数来处理密码重置,然后从wp-login.php

网上有很多教程可以做到这一点:https://code.tutsplus.com/tutorials/build-a-custom-wordpress-user-flow-part-3-password-reset--cms-23811

你还可以查看我不久前创建的这个插件上的代码,它几乎可以处理与wp-login.php ... 应该有大量关于处理自定义错误、重定向甚至重写的代码信息:

https://github.com/tripflex/wp-login-flow

相关推荐

是否有必要清理wp_set_password用户输入?

我正在尝试向WP注册表添加密码表单。请参见下面的代码。我想知道是否需要清理这个特定的用户输入?(如果是,怎么做?)如果我理解正确,WP为某些东西内置了净化功能,密码可能就是其中之一。对吗?WP会在将其添加到数据库之前自动对其进行清理吗?add_action( \'register_new_user\', \'registration_change_pass\', 10, 99 ); function registration_change_pass( $user_id ) { &