Joomla 当用户点击电子邮件中的激活链接时,如何登录并发送到购物车
未注册的用户可以将项目添加到购物车,但需要在下订单之前注册。 当用户点击激活链接时,他会收到类似“您的帐户已激活”的消息。登录以继续购物' 我想激活和登录用户,并重定向到购物车他。 (很多用户只是忽略了这条消息,然后抱怨他们不能下订单……) 我的想法是在电子邮件激活url中插入一个变量(以区分常规注册和订购过程中的注册),并在激活中-如果设置了变量,则进行登录和重定向 设法将变量放入注册表(在checkout\u register\u form.php中)。 com_user/controller.php中有activate和_sendMail函数可以完成其余的工作(在_sendMail()中找到url和消息,并在activate()中找到适当的登录和重定向位置),但该脚本中的更改不会起任何作用:(Joomla 当用户点击电子邮件中的激活链接时,如何登录并发送到购物车,joomla,virtuemart,Joomla,Virtuemart,未注册的用户可以将项目添加到购物车,但需要在下订单之前注册。 当用户点击激活链接时,他会收到类似“您的帐户已激活”的消息。登录以继续购物' 我想激活和登录用户,并重定向到购物车他。 (很多用户只是忽略了这条消息,然后抱怨他们不能下订单……) 我的想法是在电子邮件激活url中插入一个变量(以区分常规注册和订购过程中的注册),并在激活中-如果设置了变量,则进行登录和重定向 设法将变量放入注册表(在checkout\u register\u form.php中)。 com_user/controlle
有没有其他方法或建议来解释为什么这样做行不通?或者我是在处理错误的文件?根据您的要求,您可以通过两种方式完成此任务 1) 注册和自动登录 *)当用户进入注册表签出页面时,在表单中保留一个隐藏变量 *)然后在com_users/controller/registration.php中注册之后 包含注册成功部分重定向区域,仅从签出更改此部分,并强制该用户登录
$app = JFactory::getApplication();
$options = array();
$credentials['username'] = $_POST['email'];
$credentials['password'] = $_POST['password'];
$error = $app->login($credentials, $options);
$mainframe = &JFactory::getApplication();
$mainframe->redirect(JURI::root().'index.php?option=com_virtuemart&view=checkout1',false);
这将做注册和登录的同时,用户没有疑问或困惑。也安全。(大多数购物车这样工作)
2) 通过电子邮件注册后
您应该通过电子邮件链接传递一个密钥,并在激活后检查该密钥。然后启用该用户会话(这对于您的要求来说根本不是一个正确的方法。)安全问题,您应该正确访问登录部分的过期url
我推荐第一种最安全、最符合joomla标准的方法。只需在用户管理器中激活用户,即可在注册时启用并使用此方法
希望这会有帮助