Как программно создать нового пользователя с настраиваемыми полями?


18

Я хочу создать пользователя с некоторыми пользовательскими полями. Я создал дополнительные поля через config> people> информация о сайте> управляю полями и полями, такими как имя, фамилия, город и т. Д. Я хочу создать пользователя с этими настраиваемыми полями.

Как я могу создать пользователя программно?

Ответы:


25

Используя user_saveфункцию Drupal, вы можете создавать новых пользователей, например, так:

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

Я не уверен, что accessделает, я скопировал это из комментариев на странице user_save на do и изменил их, так что я не на 100%, что accessделает. Я предполагаю, что это последняя дата доступа, поэтому, если это новый пользователь, я думаю, его не следует устанавливать.
Биби

спасибо, что работает хорошо для меня. и извините за поздний повтор.
Пранав Ганди

@GandhiPranav Не забудьте принять ответы на ваши вопросы, если они помогли вам; это позволяет будущим посетителям знать, что именно решение решило вашу конкретную проблему, и вознаграждает ответчика за их усилия. Вы можете принять ответ, нажав на галочку под индикатором голосования. Спасибо :)
Клайв

Доступ - это только последнее поле доступа (как и «созданное» поле
ergophobe

Это работает для создания новых пользователей, но разве не существует «предпочтительного» способа, как с узлами? Что-то, связанное с entity_create_stub_entity ('user') или entity_metadata_wrapper (..)? Я спрашиваю, потому что я изо всех сил пытался сделать это способом сущности .. :)
texas-bronius
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.