Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Joomla 当用户点击电子邮件中的激活链接时,如何登录并发送到购物车_Joomla_Virtuemart - Fatal编程技术网

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

Joomla 当用户点击电子邮件中的激活链接时,如何登录并发送到购物车,joomla,virtuemart,Joomla,Virtuemart,未注册的用户可以将项目添加到购物车,但需要在下订单之前注册。 当用户点击激活链接时,他会收到类似“您的帐户已激活”的消息。登录以继续购物' 我想激活和登录用户,并重定向到购物车他。 (很多用户只是忽略了这条消息,然后抱怨他们不能下订单……) 我的想法是在电子邮件激活url中插入一个变量(以区分常规注册和订购过程中的注册),并在激活中-如果设置了变量,则进行登录和重定向 设法将变量放入注册表(在checkout\u register\u form.php中)。 com_user/controlle

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

我想激活和登录用户,并重定向到购物车他。 (很多用户只是忽略了这条消息,然后抱怨他们不能下订单……)

我的想法是在电子邮件激活url中插入一个变量(以区分常规注册和订购过程中的注册),并在激活中-如果设置了变量,则进行登录和重定向

设法将变量放入注册表(在checkout\u register\u form.php中)。 com_user/controller.php中有activate和_sendMail函数可以完成其余的工作(在_sendMail()中找到url和消息,并在activate()中找到适当的登录和重定向位置),但该脚本中的更改不会起任何作用:(


有没有其他方法或建议来解释为什么这样做行不通?或者我是在处理错误的文件?

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

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标准的方法。只需在用户管理器中激活用户,即可在注册时启用并使用此方法

希望这会有帮助