1
我正在以編程方式創建一個drupal用戶帳戶,代碼如下。除了遵循標準用戶創建規則的Drupal之外,一切似乎都有效,主要是發送一封電子郵件來確認電子郵件地址。所以,用戶是在Drupal中創建的,但確認電子郵件永遠不會被髮送。Drupal 7 user_save不發送註冊郵件
電子郵件在安裝中正常工作。如果我使用標準註冊表格,用戶將按照預期收到電子郵件並完成註冊過程。
有關我需要做什麼才能讓user_save知道發送確認電子郵件的提示?
function _webform_submit($form, &$form_state) {
$data = $form_state['values']['submitted_tree'];
drupal_set_message('Data is: <pre>' . print_r($data, TRUE) . '</pre>');
if (array_key_exists('create_user', $data)) {
drupal_set_message('Found create_user.');
$name = $data['email'];
$account_id = db_query("SELECT uid FROM {users} WHERE name = :name", array(':name' => $name))->fetchField();
$account = new stdClass();
if ($account_id) {
//$account->uid = $account_id;
drupal_set_message("Found existing user");
}
else {
$pass = user_password();
drupal_set_message("Creating a new user: " . $name . " with pw: " . $pass);
$account->is_new = TRUE;
$account->status = TRUE;
foreach($data as $key => $value) {
//If this is an array, likely checkboxes.
if (gettype($value) == 'array') {
foreach($value as $arr_key => $arr_val) {
$edit[$arr_val]['und'][0]['value'] = '1';
}
}
else {
$edit[$key]['und'][0]['value'] = $value;
}
}
$edit['name'] = $name;
//$edit['pass'] = $pass;
$edit['mail'] = $name;
$edit['status'] = 1;
$edit['init'] = $name;
user_save($account, $edit);
}
}
}