1

我有一个包含来自另一个项目的用户信息的数据库。现在我想将此用户数据与我的新 wordpress 安装链接。我想,如果用户即将登录并且还没有 Wordpress 配置文件,但配置文件已经在另一个数据库中,那么 wordpress 需要根据数据创建一个配置文件,该数据已经存在于另一个数据库中。

我已经完成了登录,它工作正常......

add_filter('authenticate', 'check_login', 40, 3);
function check_login($user, $username, $password) {

    $user = get_user_by( 'login', $username );  

    $hash = kbHash($password);

    if ( $user ) {

        if (!wp_check_password( $hash, $user->data->user_pass, $user->ID) ) {
            $user = NULL;
        }

    } elseif ($kbCredentials = isKanuboxUser($username)) {

        if ($kbCredentials['hash'] == $hash)) {
            $user_id = wp_create_user( $kbCredentials['username'], $kbCredentials['hash'], $kbCredentials['mail'] );
            $user = get_userdata( $user_id );
        } else {
            $user = NULL;
        }

    } else {
        $user = NULL;
    }

    return $user;
}

function kbHash($password) {
    //TODO: additional hashing from other project
    $hash = $password;
    return $hash;
}

现在,问题是,如果某个用户编辑了他的密码,我也需要做这个散列并在原始数据库中更新它。wordpress 里面有合适的钩子吗?

我只发现了这个:add_action( 'profile_update', 'some_function' );

但是在那个函数中,我无法在应用 wp-hashing 之前将我的散列添加到纯文本密码中。

如何解决这个问题?

4

0 回答 0