在我直接回答我的问题之前,我一直在做的一些背景知识。
我使用了Toboggan Drupal模块,让用户在完成注册后自动登录
在注册页面上,有一个用户必须选择的价格计划。
$ 4.95:
ID: p_1
重定向到页面(页面名称): 001
$ 14.95:
ID: p_2
重定向到页面(页面名称): 002
$ 29.95:
ID: p_3
重定向到页面(页面名称): 003
完成所有注册字段,包括价格计划。它将被重定向到上面列出的相应页面,而不是重定向到mysite.com/user
现在问题出现了,
我创建了一条在用户成功注册后的规则。
该操作是执行自定义PHP代码
<?php
global $user;
$uid = $user->uid;
$result = db_query("SELECT field_price_plan_value FROM field_data_field_price_plan WHERE entity_id = :uid",
array(
':uid' => $uid
))->fetchField();
if ($result == "p_1") {
header("Location: 001");
} else if ($result == "p_2") {
header("Location: 002");
} else if ($result == "p_3") {
header("Location: 003");
}
用户注册后,用户没有重定向到某个页面。例如,我在成功注册后选择了14.95美元,我应该被重定向到 mysite.com/002 ,但我只是重定向到默认的mysite.com/user。
任何可能的解决方案?帮助会很好。
我甚至使用drupal_goto()而不是header(),但仍然没有工作。
修改
这是一些重复的问题,但是,我仍然无法很好地应用我的问题。
How to redirect user to a specific page after they login if they belong to a certain role?