Comment créer par programme un nouvel utilisateur avec des champs personnalisés?


18

Je veux créer un utilisateur avec des champs personnalisés. J'ai créé des champs supplémentaires via config> personnes> informations sur le site> gérer les champs et les champs comme le prénom, le nom, la ville, etc. Je veux créer un utilisateur avec ces champs personnalisés.

Comment puis-je créer un utilisateur par programme?

Réponses:


25

En utilisant la user_savefonction Drupal, vous pouvez créer de nouveaux utilisateurs comme ceci:

$new_user = array(
  'name' => 'JohnDoe',
  'mail' => 'john.doe@email.com',
  'pass' => 'password123',
  'status' => 1,
  'field_custom_first_name' => array(LANGUAGE_NONE => array(array('value' => 'John'))), // This becomes $account->field_custom_first_name[LANGUAGE_NONE][0]['value']
  'field_custom_last_name' => array(LANGUAGE_NONE => array(array('value' => 'Doe'))),
  'access' => REQUEST_TIME,
  'roles' => array(), // No other roles than Authenticated
  //'roles' => array('10' => '10', '11' => '11'), // If you want to specify additional roles, the numbers are role_id's
);
user_save(NULL, $new_user);

Je ne sais pas quoi accessfaire, j'ai copié cela à partir des commentaires de la page user_save sur do et les ai modifiés, donc je ne suis pas à 100% sur ce qui accessfait. Je vais supposer que c'est la dernière date d'accès, donc si c'est un nouvel utilisateur, je suppose que cela ne devrait pas être défini.
Beebee

merci son bon travail pour moi. et désolé pour la rediffusion tardive.
Pranav Gandhi

@GandhiPranav N'oubliez pas d'accepter les réponses à vos questions si elles vous ont aidé; cela permet aux futurs visiteurs de savoir qu'une solution particulière a été celle qui a résolu votre problème spécifique, et cela récompense le répondeur pour leurs efforts. Vous pouvez accepter une réponse en cliquant sur la coche sous l'indicateur de vote. Merci :)
Clive

L'accès n'est que le dernier champ d'accès (comme le champ "créé"
ergophobe

Cela fonctionne pour créer de nouveaux utilisateurs, mais n'y a-t-il pas une manière d'entité "préférée" comme avec les nœuds? Quelque chose impliquant entity_create_stub_entity ('user') ou entity_metadata_wrapper (..)? Je demande parce que j'ai eu du mal à le faire à l'entité .. :)
texas-bronius
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.