我想他们创造自己的帐户后,用户转发到特定的页面,但是当他们到达那里,他们没有登录。实施hook_user_insert不登录我的用户
function mymodule_user_insert(&$edit, $account, $category) {
drupal_goto("node/3");
}
我应该添加一些内容以确保用户在创建账户后才能登录?
我想他们创造自己的帐户后,用户转发到特定的页面,但是当他们到达那里,他们没有登录。实施hook_user_insert不登录我的用户
function mymodule_user_insert(&$edit, $account, $category) {
drupal_goto("node/3");
}
我应该添加一些内容以确保用户在创建账户后才能登录?
这是不这样做的地方,因为这应该只用于发布自定义添加到数据库中,see the documentation here。
做到这一点是使用作为已经尝试和测试,并做了你所追求的登录目的地模块的最简单方法。要看他们是如何做的,就先看看源头。
http://drupal.org/project/login_destination
或者您应将代码添加到hook_user_login
hook_user_insert()用户帐户被插入到数据库中的表,这将发生后调用时管理员的用户之一从创建用户帐户管理页面,或者当模块以编程方式创建用户帐户时。
挂钩的目的是保存模块与用户帐户关联的自定义数据。在这种情况下调用drupal_goto()
是错误的。
要在注册后重定向用户,您可以实现类似于以下的代码。 (“MyModule的”仅仅是一个模块短名称的例子;其更改为你使用/创建模块的简称。)
function mymodule_form_ user_register_form_alter(&$form, &$form_state) {
// Add a form submission handler to the registration form.
$form['#submit'][] = 'mymodule_user_register_submit';
}
function mymodule_user_register_submit($form, &$form_state) {
$form_state['redirect'] = 'where you want to redirect the user';
}
考虑到执行该代码时,用户仍然需要登录和(根据网站设置),他们可能需要首先接收Drupal发送给用户的电子邮件,当它设置为首先验证注册用户报告的电子邮件地址时。
如果你想重定向用户登录后,你应该实现hook_user_login(),但用户需要首先登录。
不幸的是,仅检查登录不*登记* :( –
相信的Drupal 7版本会注册并注销 –