2009-09-16 159 views
1

我正在使用Drupal构建付费订阅站点。在搜索完Drupal模块之后,我一直无法找到任何能够让我在用户访问我的着陆页后创建一个新的Drupal帐户的东西,他们决定订阅并提供他们有效的信用卡信息。我想在他们的信用卡信息通过验证后将他们重定向到订阅网站并创建一个新帐户。使用Drupal远程创建新帐户

是否有人熟悉用Drupal远程创建用户帐户的模块或方法? OpenID是一种可能性,但我想给用户更多选择用户名的自由。

回答

1

为什么不用Drupal的注册表单来扩展一些额外的字段和验证函数?

1

在用户输入详细信息后,您可以创建一个钩子,函数或为创建新用户帐户的函数构建一个xml-rpc接口。

例如,他们填写的表格上,你可以有形式的_submit:

formname_sumbit($form, &$form_state) { 
// Do form stuff here 

// Now do user_save stuff 
$password = user_password(); 
$mail = $form_state['values']['email_address']; 
// Use blank account object as we are creating a new account 
$account = array(); 

$properties = array('name' => 'someusername', 'pass' => $password, 'mail' => $mail, $roles => array('authenticated user', 'some other role')); 
$this_user = user_save($account, $properties); 

} 

这应该采取创建用户的关怀。我不确定如何自动登录,但global $user; $user = $this_user;可能工作。应该通过user_save函数的电子邮件通知用户他们的新帐户,但您也可以通过drupal_set_message告知他们。

http://api.drupal.org/api/function/user_save/6