wp_generate_password(12), 'user_login' => 'will', 'user_nicename' => 'Willy', 'user_email' => 'bonjour@wabeo.fr', ) ); if ( ! is_wp_error( $id ) ) { update_user_meta( $id, 'old_hashed_password', $pass ); } } // Mon système d’auth secondaire add_filter( 'check_password', 'willy_check_password', 20, 4 ); function willy_check_password( $check, $password, $hash, $user_id ) { // Si la connexion est réussie, où que l’utilisateur … // … n’a pas de mot de passe migré … // … on quitte if ( $check || false === $old_hash = get_user_meta( $user_id, 'old_hashed_password', true ) ) { return $check; } // Si ça correspond if ( hash_equals( $old_hash, md5( "foo{$password}bar" ) ) ) { // On supprime la meta delete_user_meta( $user_id, 'old_hashed_password' ); // et on met à jour le mot de passe wp_set_password( $password, $user_id ); return true; } return $check; }