如何在Magento中修改或删除addSuccess消息?

如何在Magento中修改或删除addSuccess消息?,magento,Magento,例如,以下操作将添加一条消息,该消息将插入页面: -单击addtocart按钮时,将显示一条消息,说明产品添加成功与否。 代码位于app/code/core/Mage/Checkout/controllers/CartControllers.php中 $message = $this->__('%s was added to your shopping cart.', Mage::helper('core')->escapeHtml($product->getName()));

例如,以下操作将添加一条消息,该消息将插入页面:

-单击addtocart按钮时,将显示一条消息,说明产品添加成功与否。 代码位于app/code/core/Mage/Checkout/controllers/CartControllers.php中

$message = $this->__('%s was added to your shopping cart.', Mage::helper('core')->escapeHtml($product->getName()));
$this->_getSession()->addSuccess($message);
-提交产品审查时,将显示一条消息,说明审查已被接受以进行审核。 代码位于app/code/core/Mage/Review/controllers/ProductController.php中

$session->addSuccess($this->__('Your review has been accepted for moderation.'));
以上两个只是示例,还有更多其他类似的消息显示在某些操作上

我知道如何覆盖、更改或删除邮件。对于addtocart消息,也可以通过转到管理面板将其关闭

我相信有一种更好的方法来修改这些消息,而不是创建一个模块并重写函数来修改或删除消息

有人知道修改或删除这些addSuccess消息的更好方法吗?
调用addSuccess()函数并添加消息后,我们如何修改或删除这些消息?

当然有更好的方法;D

查看您的
app/locale/en_US
文件夹(或您想要编辑的任何语言)。在那里,您将找到一系列带有翻译的CSV文件

每次看到
echo$this->((“此处的某物”)表示这些CSV文件中有翻译。这取决于当前名称空间,因此对于签出消息,您需要首先查看
Mage_Checkout.csv


使用您最喜欢的文本编辑器打开,并查找以下内容:
%s已添加到您的购物车。,%s已添加到您的购物车。

现在,将逗号后的行更改为您想要的:
%s已添加到您的购物车中。我们刚刚将%s添加到您的购物车中

或者,只需删除逗号后的所有内容即可将其置为空白:
%s已添加到您的购物车中。,

%s
表示使用的变量,该变量作为
\
函数中的第二个参数传递

对于addtocart消息,也可以通过转到管理面板将其关闭


正如@s-hunter在上面引用的那样,任何人都可以告诉我们在哪里可以找到关闭设置。

这将从会话中删除所有成功或错误消息

$this->_getSession()->getMessages(true);
更具体地说,您可以使用以下命令分别从
core
customer
会话中删除消息:

Mage::getSingleton('core/session')->getMessages(true);
Mage::getSingleton('customer/session')->getMessages(true);

谢谢如果我只是想修改消息,但如果我按照您建议的方式删除消息,它会清空消息,但单击addtocart按钮后class=“message”的ul元素仍会显示。ul元素将显示为彩色线,而不是彩色框中的消息。如何删除该消息以及包含该消息的ul元素?这取决于,您可以使用Javascript/JQuery删除它(检查它是否为空,如果为空,则删除ul元素),或者你可以改变CSS,使其完全不显示。除了这两个解决方案之外,您还必须求助于编辑模板或代码文件。如果我仍然需要使用css,那么我可以使用css隐藏它,而无需更改语言文件、模板文件或代码文件。因此,回到最初的问题,下面哪一个是这个任务更好的解决方案:1。重写php控制器文件中的函数。2.更改语言文件,然后使用css隐藏空的ul元素。3.用户专用css。4.还有其他更好的方法吗消息类也用于其他事情,如果你完全隐藏它,那么你将看不到任何使用该类的消息。除了这些解决方案之外,您还可以编辑template.phtml文件以防止消息被输出,您不需要接触任何类。如果我修改了类,我只需要重写生成此消息的函数。其他消息仍然可以显示,因为不是每个弹出消息都是由此类的此函数生成的。如果要修改.phtml文件,这将阻止显示其他消息,因为此.phtml由多个父模板文件使用。