¿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?

Respuestas:


25

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

$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);

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
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.