我试图将其制定为规则,并使用 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片段为特定情况创建条件的能力,但我从未使用过它们。

我只是将其放在答案表中,即使没有内容配置文件提供的规则,您也可以使用规则来执行此操作。

只需使用“用户登录”触发器,添加了为空和重定向的感兴趣字段的条件即可。

许可以下: CC-BY-SA归因
scroll top