题
我试图将其制定为规则,并使用 hook_user
没有运气。它肯定会进入登录案例(有一个看门狗日志),但是重定向不会发生,它们仍然发送到 /user
登录时。
我正在毫无运气的情况下尝试:
/**
* Implementation of hook_user()
*/
function multistep_registration_user($op, &$edit, &$account, $category = NULL) {
switch ($op) {
case 'insert':
multistep_registration_save_content_profile_name($account);
break;
case 'login':
if (!multistep_registration_is_complete($account->uid)) {
drupal_goto('user/register/complete-registration');
exit;
}
break;
default:
break;
}
}
function multistep_registration_is_complete($uid) {
if ($uid == 1) {
return TRUE;
}
$node = content_profile_load('profile', $uid);
if ($node->field_completed_registration[0]['value'] == 'yes') {
return TRUE;
}
return FALSE;
}
为什么不重新定向?新用户都将值集为“否”。
解决方案
您可以尝试使用 logintoboggan, ,这使您可以在登录时设置重定向。
其他提示
我们使用的一种方法是使用 规则. 。它允许您制定一个规则:
- 用户刚刚登录。
- 用户尚未完成内容配置文件(您可以选择特定的内容类型)。
- 为以下操作:将用户重定向到您想要的URL
希望能帮助到你!
编辑:当用户查看页面并具有想要的角色时,您也可以做到,重定向。这样,它迫使他们填写它,不允许他们做其他任何事情(如果您愿意的话)。
我用 登录目的地 在我的网站上登录后重定向;我知道它具有使用PHP片段为特定情况创建条件的能力,但我从未使用过它们。
我只是将其放在答案表中,即使没有内容配置文件提供的规则,您也可以使用规则来执行此操作。
只需使用“用户登录”触发器,添加了为空和重定向的感兴趣字段的条件即可。
不隶属于 drupal.stackexchange