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.