Dans WordPress, il est souvent nécessaire de travailler avec la classe WP_User et ses diverses méthodes. Voici quelques fonctions utiles pour les utilisateurs WordPress et exemples pratiques de manipulation de cet objet qui pourront certainement vous servir si vous créez vos propres plugins.
Création d'un nouvel utilisateur
Utilisation de la fonction wp_create_user()
Exemple minimal pour créer un utilisateur qui aura automatiquement le rôle par défaut défini dans vos réglages.
get_error_message();
} else {
echo 'Utilisateur créé avec succès. ID : ' . $user_id;
}
?>
wp_create_user()
: Crée un nouvel utilisateur avec un nom d’utilisateur, un mot de passe et une adresse e-mail.- Retourne : L’ID de l’utilisateur créé ou un objet
WP_Error
en cas d’échec.
Utilisation de la fonction wp_insert_user()
'nom_utilisateur',
'user_pass' => 'mot_de_passe',
'user_email' => 'email@example.com',
'first_name' => 'Prénom',
'last_name' => 'Nom',
'role' => 'editor',
);
$user_id = wp_insert_user( $user_data );
if ( is_wp_error( $user_id ) ) {
// Gestion des erreurs
echo 'Erreur : ' . $user_id->get_error_message();
} else {
echo 'Utilisateur créé avec succès. ID : ' . $user_id;
}
?>
wp_insert_user()
: Permet de créer ou de mettre à jour un utilisateur avec un tableau de données plus complet.- Paramètres : Tableau associatif contenant les informations de l’utilisateur.
- Retourne : L’ID de l’utilisateur créé/mis à jour ou un objet
WP_Error
en cas d’échec
Récupération d'un utilisateur existant
Utilisation de la fonction get_user_by()
Cette fonction très pratique vous permet de récupérer toutes les données d’un utilisateur en fonction d’un champ spécifique :
user_login;
} else {
echo 'Aucun utilisateur trouvé avec cet email.';
}
?>
get_user_by( $champ, $valeur )
: Récupère un objet utilisateur en fonction d’un champ spécifique.- Paramètres :
$champ
: Le champ à utiliser pour la recherche ('id'
,'slug'
,'email'
,'login'
).$valeur
: La valeur à rechercher.
- Retourne : Un objet
WP_User
oufalse
si aucun utilisateur n’est trouvé.
Vérifier si un utilisateur existe
Utilisons la méthode exists() avec la classe WP_User :
exists() ) {
echo 'Utilisateur trouvé : ' . $user->user_login;
} else {
echo 'Aucun utilisateur trouvé avec cet ID.';
}
?>
Mise à jour des informations d'un utilisateur
Utilisation de la fonction wp_update_user()
$user_id,
'first_name' => 'Nouveau Prénom',
'last_name' => 'Nouveau Nom',
'user_email' => 'nouvel_email@example.com',
);
$updated_user_id = wp_update_user( $user_data );
if ( is_wp_error( $updated_user_id ) ) {
// Gestion des erreurs
echo 'Erreur : ' . $updated_user_id->get_error_message();
} else {
echo 'Utilisateur mis à jour avec succès.';
}
?>
wp_update_user()
: Met à jour les informations d’un utilisateur existant.- Paramètres : Tableau associatif contenant les informations à mettre à jour.
- Important : Le champ
'ID'
est obligatoire pour identifier l’utilisateur à mettre à jour.
Suppression d'un utilisateur
Utilisation de la fonction wp_delete_user()
wp_delete_user( $user_id, $reassign )
: Supprime un utilisateur.- Paramètres :
$user_id
: L’ID de l’utilisateur à supprimer.$reassign
(optionnel) : L’ID d’un utilisateur à qui réattribuer les contenus de l’utilisateur supprimé.
- Retourne :
true
en cas de succès,false
en cas d’échec. - $reassign est un paramètre facultatif qui vous permet de spécifier un autre $user_id à qui attribuer tout ce qui pouvait être attribué au $user_id que vous supprimez. Si c’était un auteur qui avait écrit des articles, alors ses articles seront assignés à $reassign.
Gestion des rôles et des capacités
Dans WordPress, la gestion des rôles et de leurs capacités est cruciale. C’est ce qui vous permet de décider qu’un utilisateur peut voir ou faire telle ou telle action. Par défaut, WordPress propose un certain nombre de rôles avec des capacités. Ces rôles par défaut et leurs capacités sont détaillés dans cet article.
Vérification du rôle d'un utilisateur
roles ) ) {
echo 'Cet utilisateur est un administrateur.';
} else {
// Affiche tous les rôles de l'utilisateur s'il n'est pas administrateur
$user_roles = implode( ', ', $user->roles ); // Convertit les rôles en une chaîne
echo 'Cet utilisateur n\'est pas administrateur, il a les rôles suivants : ' . $user_roles;
}
?>
Attribution d'un rôle à un utilisateur
set_role( 'editor' );
echo 'Le rôle de l\'utilisateur a été mis à jour en éditeur.';
?>
set_role( $role )
: Attribue un rôle unique à l’utilisateur, en supprimant les rôles existants.
Ajout d'un rôle supplémentaire
add_role( 'author' );
echo 'Le rôle d\'auteur a été ajouté à l\'utilisateur.';
?>
add_role( $role )
: Ajoute un rôle supplémentaire à l’utilisateur.
Suppression d'un rôle
remove_role( 'subscriber' );
echo 'Le rôle d\'abonné a été supprimé de l\'utilisateur.';
?>
remove_role( $role )
: Supprime un rôle spécifique de l’utilisateur.
Vérification des capacités
has_cap( 'edit_posts' ) ) {
echo 'Cet utilisateur peut éditer des articles.';
}
?>
has_cap( $capability )
: Vérifie si l’utilisateur a une capacité spécifique.
Lister toutes les capacités d'un utilisateur
exists() ) {
// Parcourez toutes les capacités de l'utilisateur
echo ' ';
foreach ( $user->allcaps as $capability => $has_cap ) {
// Affichez chaque capacité et si l'utilisateur la possède ou non
echo '- ' . $capability . ' : ' . ( $has_cap ? 'Oui' : 'Non' ) . '
';
}
echo '
';
} else {
echo 'Utilisateur non trouvé.';
}
?>
$user->allcaps
: C’est un tableau associatif où chaque clé est une capacité (comme'edit_posts'
,'publish_posts'
, etc.) et chaque valeur est un booléen (true
oufalse
) indiquant si l’utilisateur a cette capacité.foreach
: Parcourt chaque capacité et affiche si l’utilisateur la possède ou non.
Manipulation des métadonnées utilisateur
Les métadonnées sont des données supplémentaires que vous pouvez vouloir recueillir des informations sur vos utilisateurs. Cela peut être une adresse, une ville, un code postal, une biographie, etc. Il existe un excellent plugin gratuit qui permet de manipuler les métadonnées (utilisateurs ou autres) : Advanced Custom Fields (aujourd’hui Secure Custom Fields).
Ajout de métadonnées
add_user_meta( $user_id, $meta_key, $meta_value, $unique )
: Ajoute une métadonnée à un utilisateur.- Paramètres :
$user_id
: ID de l’utilisateur.$meta_key
: Clé de la métadonnée.$meta_value
: Valeur de la métadonnée.$unique
: Si défini àtrue
, n’ajoute la métadonnée que si elle n’existe pas déjà.
Récupération de métadonnées
?>
get_user_meta( $user_id, $meta_key, $single )
: Récupère la valeur d’une métadonnée utilisateur.- Paramètres :
$single
: Si défini àtrue
, retourne une seule valeur.
Mise à jour de métadonnées
update_user_meta( $user_id, $meta_key, $meta_value, $prev_value )
: Met à jour la valeur d’une métadonnée.$prev_value
(optionnel) : Valeur précédente pour une mise à jour conditionnelle.- L’utilisation de
$prev_value
est utile dans les cas où vous voulez vous assurer que la mise à jour de la métadonnée n’est effectuée que si la valeur actuelle est déjà une valeur spécifique, autrement dit, vous vérifiez que la valeur de la métadonnée est bien ce que vous attendez avant de la modifier. Si la valeur actuelle de la métadonnée est différente de celle spécifiée par$prev_value
, la mise à jour échoue (aucun changement n’est fait).
Exemple de mise à jour avec $prev_value
Suppression de métadonnées
delete_user_meta( $user_id, $meta_key, $meta_value )
: Supprime une métadonnée utilisateur.$meta_value
(optionnel) : Supprime uniquement si la valeur correspond.
Exemples Pratiques
Exemple 1 : Lister tous les utilisateurs avec le rôle "auteur"
'author',
'orderby' => 'user_nicename',//classé par nom d'utilisateur
'order' => 'ASC',//ordre ascendant
);
$users = get_users( $args );
foreach ( $users as $user ) {
echo 'ID : ' . $user->ID . ' - Nom : ' . $user->display_name . '
';
}
?>
get_users( $args )
: Récupère une liste d’utilisateurs selon des critères.
Exemple 2 : Vérifier si un utilisateur est connecté
user_login;
} else {
echo 'Aucun utilisateur n\'est connecté.';
}
?>
is_user_logged_in()
: Vérifie si un utilisateur est connecté.wp_get_current_user()
: Récupère l’objet utilisateur courant.
Exemple 3 : Restreindre l'accès à une page aux utilisateurs connectés
Bienvenue, display_name; ?>, vous êtes connecté!
wp_redirect( $url )
: Redirige vers une URL spécifique.wp_login_url()
: Retourne l’URL de la page de connexion.
Conclusion des fonctions utiles pour les utilisateurs WordPress
La manipulation de l’objet WP_User et des fonctions associées permet une gestion fine des utilisateurs dans WordPress. Que ce soit pour créer des utilisateurs personnalisés, gérer les rôles et les capacités, ou interagir avec les métadonnées, WordPress offre une API riche et flexible.
En comprenant ces méthodes et en les appliquant judicieusement, vous pouvez étendre les fonctionnalités de votre site et offrir une expérience utilisateur adaptée à vos besoins spécifiques, grâce aux fonctions utiles pour les utilisateurs WordPress.
