Drupal 7 新用户以编程方式创建?

问题描述 投票:0回答:2

Drupal 7 我需要使用代码创建新用户(而不是手动通过面板)。

当我用这块示例代码进行测试时,我在 Drupal 中用 google 搜索:

$form_state = array();
$form_state['values']['name'] = 'robo-user';
$form_state['values']['mail'] = '[email protected]';
$form_state['values']['pass']['pass1'] = 'password';
$form_state['values']['pass']['pass2'] = 'password';
$form_state['values']['op'] = t('Create new account');
drupal_execute('user_register', $form_state);

显示:

Fatal error: Call to undefined function drupal_execute() in ......

我怎样才能让它工作或像上面这样的任何其他简单的方法?

drupal drupal-7
2个回答
5
投票

试试这个,它真正以编程方式处理,而不是模仿用户注册行为。

$account->is_new = TRUE;
$account->status = TRUE;

$edit['name'] = $name;
$edit['mail'] = $mail;
$edit['status'] = 1;
$edit['init'] = $name;

$newuser = user_save($account, $edit);

//send email if you want
_user_mail_notify('register_no_approval_required', $newuser);

3
投票

您找到的示例代码适用于 Drupal 6,并且已经过时。

drupal_execute()
在 Drupal 7 中更名为
drupal_form_submit()
,表单现在为
user_register_form

© www.soinside.com 2019 - 2024. All rights reserved.