0

我添加了一个重定向到 checkout/onepage.phtml 以将客户重定向到登录/注册页面,然后再继续从购物车中结帐。我没有修改 Accountcontroller.php 或 login.phtml。

重定向工作正常,但登录页面上的错误消息会丢失(例如密码错误、未知电子邮件地址未显示)。其他页面上的消息工作正常,登录页面上的消息只有在删除 cookie 后才重新开始工作。

我在 onepage.html 开头用于重定向的代码:

      if (!$this->helper('customer')->isLoggedIn()) {
             header("Location: /customer/account/login/");
             exit();
      }

在 login.phtml<?php echo $this->getMessagesBlock()->getGroupedHtml() ?>中被正确调用。

我还尝试使用扩展重定向代码

Mage::getSingleton('core/session')->addError("Error message");
session_write_close();

它在重定向后直接显示消息,而不是在输入错误的密码/电子邮件时显示消息。有没有办法在不创建自定义控制器/模块的情况下使消息正常工作?

4

1 回答 1

1

你不需要使用 PHP 的header函数,使用 Magento 的内置重定向方法。

Mage::getSingleton('core/session')->addError('Error to display here.');
$this->_redirect('customer/account/login');
于 2013-04-29T22:47:54.610 回答