注销后Magento重定向
注销后如何将客户重定向到magento中的默认商店视图?注销后Magento重定向,magento,magento-1.7,Magento,Magento 1.7,注销后如何将客户重定向到magento中的默认商店视图? 在注销时,我将他们重定向到另一个商店视图。我知道这并不优雅,但我发现最简单的方法是将app/design/frontend/base/default/template/customer/logout.phtml中的模板文件复制并修改到您自己的主题目录中 具体而言,这一行: <p><?php echo Mage::helper('customer')->__('You have logged out and will
在注销时,我将他们重定向到另一个商店视图。我知道这并不优雅,但我发现最简单的方法是将app/design/frontend/base/default/template/customer/logout.phtml中的模板文件复制并修改到您自己的主题目录中 具体而言,这一行:
<p><?php echo Mage::helper('customer')->__('You have logged out and will be redirected to our homepage in 5 seconds.') ?></p>
<script type="text/javascript">
//<![CDATA[
setTimeout(function(){ location.href = '<?php echo $this->getUrl() ?>'},5000);
//]]>
</script>
//
通过修改location.href url甚至超时,您可以在注销后将用户指向任何位置。例如:
<script type="text/javascript">
//<![CDATA[
setTimeout(function(){ location.href = '<?php echo $this->getUrl('*/*/login') ?>'},500);
//]]>
</script>
//
同样,它也不优雅,但它应该是一个足够快的重定向,页面上的快速跳转将把它们推到另一个url,在上面的示例中,推回到登录屏幕。不幸的是,没有一个方便的事件挂钩来操纵注销重定向位置
Mage\u Customer\u AccountController::logoutAction()
在调度Customer\u logout
事件后,在响应对象上设置重定向到::logoutSuccessAction()
,它是customer/logout.phtml模板的呈现,该模板使用PHP设置echo一个javascript参数以重定向到主页,而OOB不可能传递一个arg以进行基于JS的替代重定向
我认为最干净的解决方案是观察controller\u action\u postdispatch\u customer\u account\u logout
,抓取controller对象,并使用响应对象的setRedirectWithCookieCheck()方法覆盖位置头:
public function logoutRedirect($obs)
{
$obs->getControllerAction()
->setRedirectWithCookieCheck(/* your URL param(s) */);
}
在模型>观察者中编写以下方法
public function customerLoggedOut(Varien_Event_Observer $observer)
{
$observer->getControllerAction()
->setRedirectWithCookieCheck(CustomUrl);
}
Customurl是注销后要重定向的url
如果您想要在登录、注销和注册后为您的电子商务网站定制url重定向的完整解决方案。自定义重定向扩展可以帮助您。点击链接获得分机 您需要扩展magento的默认AccountController
,并使用自定义目标地址覆盖logoutAction
。这个关于如何覆盖控制器的答案应该为您提供一个很好的起点:我认为您应该让logoutAction
将您重定向到logoutSuccessAction
,以便让magento重新初始化访客上下文(cookies)。例如,如果您将用户直接重定向到CMS/页面,您可能会遇到问题,因为magento Cookie将无法续订。宁愿覆盖logoutSuccessAction
而不是logoutAction
@Bixi有什么区别?从cookie的角度来看,logoutSuccess没有做任何其他页面所做的事情。这就像一个用户第一次来到一个主页。还是我遗漏了什么?@benmarks Yep抱歉,只有在MagentEnterprise FullPageCache被激活时才会出现问题。。当cms/页面已经用FPC缓存时,会出现一个错误,导致cookie创建无法工作,因为FPC绕过了通常用于cookie的一些顶级层init@Bixi-很高兴知道,但如果是这样,这会如何影响通常为CMS页面的主页?加载默认URL时是否有特殊情况?是否愿意分享下一票的原因?这是对这个问题的合理回答。*/*/login
是Magento跟踪模块/控制器/操作的方式
-请看这里哦,抱歉。我正在删除我的评论非常好的解决方案,通过阻止删除控件文件,非常感谢@philwinkle