未注册的用户可以将商品添加到购物车,但需要在下订单前注册。 当用户点击激活链接时,会留下“您的帐户已激活”等消息。登录以继续购物'。
我想激活并登录用户,并将其重定向到购物车。 (许多用户只是忽略了该消息,然后抱怨他们无法下订单......)
我的想法是在电子邮件激活网址中插入一个变量(以便在订购时区分常规注册和注册),并在激活中 - 如果设置了变量,请执行登录和重定向。
设法将变量放入注册表单(在checkout_register_form.php中)。 com_user / controler.php中有activate和_sendMail函数应该执行其余的操作(在_sendMail()中找到url和message,以及在activate()中登录和重定向的适当位置),但该脚本中的更改不会执行任何操作:(
为什么这不起作用的任何其他方式或建议?或者我正在处理错误的文件?
答案 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标准。只需在用户管理器中激活用户启用注册并使用此方法。
希望这会有所帮助..