0

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

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

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

确实设法将变量放入注册表(在 checkout_register_form.php 中)。com_user/controler.php 中有 activate 和 _sendMail 函数,它们应该完成其余的工作(在 _sendMail() 中找到 url 和消息,在 activate() 中找到登录和重定向的适当位置),但该脚本中的更改不会做任何事情:(

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

4

1 回答 1

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

希望这会有所帮助..

于 2012-11-30T12:36:16.933 回答