web-dev-qa-db-fra.com

Changer le user_login lors de l'enregistrement

J'utilise un plugin tiers qui ajoute l'option de connexion sociale à mon blog. Cela fonctionne très bien, mais je n'aime pas que lorsque les utilisateurs choisissent de se connecter via leurs comptes sociaux , les noms de connexion de l'utilisateur (user_login dans la base de données) sont enregistrés dans ce format. - " First-Second ", la première lettre de chaque partie est en majuscule. Mon propre user_login sera "Iurie-Malai", mais je voudrais "iurie-malai".

Je sais que les noms d'utilisateur WordPress ne font pas la distinction entre les majuscules et les minuscules, mais je souhaite que les identifiants de connexion de ces utilisateurs soient uniquement en minuscules. Comment puis-je faire ceci?

1
Iurie Malai

Vous pouvez vous accrocher à l'action user_register et mettre les chaînes en minuscule manuellement, en utilisant le wp_update_user fonction. Voici un exemple rapide:

add_action( 'user_register', 'callback_function', 10, 1 );

function callback_function( $user_id ) {
    // Get the user by their ID
    $user = get_user_by( 'id', $user_id );
    // Update their user_login
    wp_update_user(
        array( 
            'ID'         => $user_id, 
            'user_login' => strtolower( $user->user_login ) 
        )
    );
}

Utilisation du filtre pre_user_login

Vous pouvez utiliser le filtre ci-dessus pour filtrer les informations de connexion de l'utilisateur avant leur ajout à la base de données, comme suit:

add_filter( 'pre_user_login', 'callback_function' );
function callback_function( $login ) {
    return strtolower( $login );
}
1
Jack Johansson