注销后Magento重定向

时间:2012-10-18 12:49:19

标签: magento magento-1.7

如何在注销后将客户重定向到magento中的默认商店视图? 在注销时,我将它们重定向到另一个商店视图。

3 个答案:

答案 0 :(得分:7)

我知道它并不优雅,但我发现最简单的方法是将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甚至超时,您可以将用户指向注销后的任何位置。 E.g:

<script type="text/javascript">
//<![CDATA[
    setTimeout(function(){ location.href = '<?php echo $this->getUrl('*/*/login') ?>'},500);
//]]>
</script>

同样,它不优雅,但它应该是一个足够快的重定向,然后页面上的快速跳转将它们推送到另一个URL,在上面的例子中,回到登录屏幕。

答案 1 :(得分:6)

不幸的是,操作注销重定向位置没有方便的事件挂钩。

在调度Mage_Customer_AccountController::logoutAction()事件后,

::logoutSuccessAction()在响应对象上设置重定向到customer_logout,并且它是客户/的呈现logout.phtml 模板,它使用PHP来设置回显一个javascript参数,重定向到主页,没有OOB可能传递arg进行备用的基于JS的重定向。

我认为最干净的解决方案是观察controller_action_postdispatch_customer_account_logout,抓取控制器对象,并使用响应对象的setRedirectWithCookieCheck()方法覆盖位置标头:

public function logoutRedirect($obs)
{
    $obs->getControllerAction()
        ->setRedirectWithCookieCheck(/* your URL param(s) */);
}

答案 2 :(得分:0)

在您的模型中编写以下方法&gt;观察员。

public function customerLoggedOut(Varien_Event_Observer $observer)    
{    
    $observer->getControllerAction()
    ->setRedirectWithCookieCheck(CustomUrl);    
}

Customurl是您想要在注销后重定向的网址。

如果您想在登录,注销和注册后为您的电子商务网站提供自定义网址重定向的完整解决方案。自定义重定向扩展可以帮助您。点击链接获取扩展名。 http://www.magentocommerce.com/magento-connect/custom-redirection.html