Créer un nouvel utilisateur automatiquement via functions.php dans WordPress
J'ai besoin d'ajouter un nouvel utilisateur avec le rôle d'administrateur via le code, et j'ai trouvé ce code:
add_action('init', 'add_user');
function add_user() {
$username = 'username123';
$password = 'pasword123';
$email = '[email protected]';
//Create the new user
$user_id = wp_create_user( $username, $password, $email );
//Get current user object
$user = get_user_by( 'id', $user_id );
//Remove role
$user->remove_role( 'subscriber' );
//Add role
$user->add_role( 'administrator' );
}
Mais quand je l'ai ajouté dans functions.php
, j'ai eu cette erreur :
Fatal error: Call to a member function remove_role()
on a non-object in ..../functions.php on line ...
J'ai aussi essayé ce code:
function fb_wp_insert_user() {
$user_data = array(
'ID' => '',
'user_pass' => wp_generate_password(),
'user_login' => 'dummy',
'user_nicename' => 'Dummy',
'user_url' => '',
'user_email' => '[email protected]',
'display_name' => 'Dummy',
'nickname' => 'dummy',
'first_name' => 'Dummy',
'user_registered' => '2010-05-15 05:55:55',
'role' => get_option('default_role') //Use default role or another role, e.g. 'editor'
);
$user_id = wp_insert_user( $user_data );
}
add_action( 'admin_init', 'fb_wp_insert_user' );
J'ai changé de rôle par défaut pour adminstrator
mais quand j'ai parcouru les utilisateurs, j'ai trouvé cet utilisateur sans aucun rôle.
OriginalL'auteur techno | 2013-11-07
Vous devez vous connecter pour publier un commentaire.
C'est votre erreur
C'est à cause de
$user->remove_role( 'subscriber' );
code et cela signifie que, lorsque vous utilisez le code suivant pour récupérer le nouvel utilisateurCe n'est pas le retour d'un WP_User objet. Donc, si vous appelez une méthode sur un objet non, cette erreur s'affiche et il pourrait être parce que vous n'obtenez pas une
ID
lorsque vous avez utiliséIl est possible que vous n'avez pas réussi à créer un utilisateur et dans ce cas, la valeur de retour peut être un
object
selonCodex
AINSI, lorsque vous créez un utilisateur, au premier abord vérifier si l'utilisateur existe pas ou pas comme
Aussi, il n'est pas nécessaire pour reomving et de l'ajout du rôle, set_role ($) va supprimer la précédente rôles de l'utilisateur et de l'affecter à l'utilisateur la nouvelle.
Lire plus à propos de wp créer un utilisateur et obtenez de l'utilisateur par sur
Codex
. Vérifiez également la wp_generate_password() d'utiliser un mot de passe sécurisé au lieu de texte brut.Mise à jour :
add_user est un WordPress fonction, de manière à changer le nom de quelque chose d'autre, comme,
add_my_user
.vous avez raison. Désolé à ce sujet. 🙂
veuillez mettre le code complet , je utiliser votre code et de voir ce : Cannot redeclare add_user() (précédemment déclarée dans ..\fonctions.php:909) ..\wp-admin\includes\user.php sur la ligne 18 . 909 est : $username = 'username123'; . peut-être que je ne suis pas bien compris . s'il vous plaît mettez votre code complet.
Vérifiez la mise à réponse @techno.
ooooops même erreur !! Fatal error: Cannot redeclare add_user() (précédemment déclarée dans ..\fonctions.php:909) ..\wp-admin\includes\user.php sur la ligne 18 , 909 $username = 'username123';
OriginalL'auteur The Alpha
Assurez-vous que
wp_create_user()
fait créé l'utilisateur:Édité: Par les commentaires ci-dessous, il apparaît que l'utilisateur a déjà été créé. J'ai mis à jour le code pour vérifier que. (Pour l'essentiel, maintenant, si l'utilisateur n'existe pas déjà, ça va être créé.)
Références
get_user_by()
wp_create_user()
Oups, corrigé ma faute de frappe.
Fatal error: Cannot redeclare add_user() (précédemment déclarée dans ..\fonctions.php:909) ..\wp-admin\includes\user.php sur la ligne 18 909 est : $username = 'username123';
Hein? Si
wp_create_user()
renvoie uneWP_Error
objet, je vérifie pour voir quelle est l'erreur. Sinon,$user
devrait être unWP_User
objet, sauf si, pour une raison quelconque,wp_create_user()
retourné ni un ID de type entier, ni unWP_Error
objet.+1 @AmalMurali, de nice, de l'attitude, de garder portent sur 🙂
OriginalL'auteur Pat J
oui, de travail. si simple.....
OriginalL'auteur Jakir Hossain
OriginalL'auteur Soufiane