¿Cómo crear un nuevo usuario mediante programación con campos personalizados?

18

Quiero crear usuarios con algunos campos personalizados. He creado campos adicionales a través de config> personas> información del sitio> administrar campos y campos como nombre, apellido, ciudad, etc. Quiero crear un usuario con estos campos personalizados.

¿Cómo puedo crear un usuario mediante programación?

Pranav Gandhi
fuente

Respuestas:

25

Usando la user_savefunción Drupal puedes crear nuevos usuarios así:

$new_user = array(
  'name' => 'JohnDoe',
  'mail' => '[email protected]',
  '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);
Abeja
fuente
No estoy seguro de qué accesshace, he copiado esto de los comentarios de la página user_save sobre do y los he modificado, por lo que no estoy al 100% en lo que accesshace. Asumiré que es la última fecha de acceso, por lo que si se trata de un nuevo usuario, supongo que no debería establecerse.
Beebee
gracias está funcionando bien para mí. y perdón por la repetición tardía.
Pranav Gandhi
@GandhiPranav No olvides aceptar las respuestas a tus preguntas si te han ayudado; Esto les permite a los futuros visitantes saber que una solución particular fue la que resolvió su problema específico, y recompensa al respondedor por sus esfuerzos. Puede aceptar una respuesta haciendo clic en la marca de verificación debajo del indicador de voto. Gracias :)
Clive
El acceso es solo el último campo de acceso (como el campo "creado"
ergophobe
Esto funciona para crear nuevos usuarios, pero ¿no existe una forma de entidad "preferida" como con los nodos? ¿Algo relacionado con entity_create_stub_entity ('user') o entity_metadata_wrapper (..)? Lo pregunto porque he estado luchando por hacerlo de la manera entidad ... :)
texas-bronius