如何在用户点击电子邮件中的激活链接时登录用户并发送到购物车

时间:2012-11-22 11:33:04

标签: joomla virtuemart

未注册的用户可以将商品添加到购物车,但需要在下订单前注册。 当用户点击激活链接时,会留下“您的帐户已激活”等消息。登录以继续购物'。

我想激活并登录用户,并将其重定向到购物车。 (许多用户只是忽略了该消息,然后抱怨他们无法下订单......)

我的想法是在电子邮件激活网址中插入一个变量(以便在订购时区分常规注册和注册),并在激活中 - 如果设置了变量,请执行登录和重定向。

设法将变量放入注册表单(在checkout_register_form.php中)。 com_user / controler.php中有activate和_sendMail函数应该执行其余的操作(在_sendMail()中找到url和message,以及在activate()中登录和重定向的适当位置),但该脚本中的更改不会执行任何操作:(

为什么这不起作用的任何其他方式或建议?或者我正在处理错误的文件?

1 个答案:

答案 0 :(得分:0)

根据您的要求,您可以通过两种方式完成此任务。

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)从电子邮件注册后。

您应该通过电子邮件链接传递密钥并检查该密钥并激活后。然后启用该用户会话(这根本不是满足您要求的正确方法。)安全问题,您应该已过期网址正确访问登录部分。

我喜欢第一种方法最安全和joomla标准。只需在用户管理器中激活用户启用注册并使用此方法。

希望这会有所帮助..

相关问题