如何在注销后将客户重定向到默认商店视图中的magento? 在注销时,我将它们重定向到另一个存储视图。Magento注销后重定向
回答
不幸的是,操作注销重定向位置没有方便的事件挂钩。
Mage_Customer_AccountController::logoutAction()
设置后customer_logout
事件调度响应对象上重定向到::logoutSuccessAction()
,和它的客户/logout.phtml模板的渲染,它使用PHP来设置回声一个javascript参数去重定向到主页没有OOB可能性通过一个arg替代基于JS的重定向。
我认为最干净的解决办法是观察controller_action_postdispatch_customer_account_logout
,抢遥控器的对象,并使用响应对象的setRedirectWithCookieCheck()
方法覆盖Location头:
public function logoutRedirect($obs)
{
$obs->getControllerAction()
->setRedirectWithCookieCheck(/* your URL param(s) */);
}
我知道这不是优雅,但我发现的最简单的方法是将模板文件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,在上面的例子中,返回到登录界面。
小心分享downvote的原因?这是这个问题的合理答案。 – philwinkle
'*/*/login'是Magento如何跟踪'module/controller/action' - 请看这里http://www.magentocommerce.com/wiki/5_-_modules_and_development/reference/geturl_function_parameters – philwinkle
呵呵,笑一笑,对不起。我正在删除我的评论 – poepje
写在你的模型>观察下面的方法。
public function customerLoggedOut(Varien_Event_Observer $observer)
{
$observer->getControllerAction()
->setRedirectWithCookieCheck(CustomUrl);
}
Customurl是您想要在退出后重定向的网址。
如果您想在登录,注销和注册后为您的电子商务网站定制URL重定向的完整解决方案。自定义重定向扩展可以帮助您。点击链接获取扩展。 http://www.magentocommerce.com/magento-connect/custom-redirection.html
- 1. 注销后Django重定向
- 2. 注销重定向
- 3. magento自定义重定向后注册
- 4. Thinktecture IdentityServer注销后如何重定向?
- 5. 登录和注销重定向后PHP
- 6. 注销后无法重定向
- 7. 注销后重定向设计
- 8. 注销后删除头部位置重定向?q =注销
- 9. Laravel 5注销后重定向 - 如何重定向回?
- 10. cakephp注销重定向
- 11. ASP.Net LoginStatus注销重定向
- 12. 注销重定向错误
- 13. ajax注销重定向
- 14. Laravel 5.4注销重定向
- 15. 验证失败后,FOSUserBundle重定向失败|注销后重定向
- 16. Magento登录后重定向
- 17. CakePHP的 - 登录和注销重定向后,不重装
- 18. Django - 在POST后重定向(但在注销后)
- 19. Facebook的注销按钮和重定向注销
- 20. 注销时重定向并显示“您已成功注销!”
- 21. 重定向内置注销视图Django的全成注销
- 22. 为什么重定向到https注销?
- 23. 重定向注销春季安全
- 24. 注销重定向ASP.NET不工作
- 25. Laravel注销重定向不工作
- 26. WordPress的重定向登录/注销
- 27. 注销重定向到错误页面
- 28. mobilefirst注销重定向到新页面
- 29. @login_required()不重定向注销用户
- 30. 如何重定向拖欠注销
您需要扩展magento的默认'AccountController'并用您的自定义目标地址覆盖'logoutAction'。关于如何重写控制器的这个答案应该给你一个好的起点:http://stackoverflow.com/questions/6980026/override-magento-controller –
我认为你应该让'logoutAction'按照顺序重定向到'logoutSuccessAction'让magento重新初始化访问者上下文(cookies)。例如,如果您直接将用户重定向到CMS /页面,则可能会有问题,因为magento cookie不会被续订。比'logoutAction'优先重写'logoutSuccessAction' –
@Bixi有什么区别? logoutSuccess不会从任何其他页面的cookie角度做任何事情。这就像用户首次进入主页一样。或者我错过了什么? – benmarks