2

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

当我在 Drupal 中用谷歌搜索的这段示例代码进行测试时:

$form_state = array();
$form_state['values']['name'] = 'robo-user';
$form_state['values']['mail'] = 'robouser@example.com';
$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 ......

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

4

2 回答 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);
于 2012-07-02T14:36:28.727 回答
3

您找到的示例代码适用于 Drupal 6 且已过时。在 Drupal 7drupal_execute()中重命名,现在形式为.drupal_form_submit()user_register_form

于 2012-07-03T18:23:11.363 回答