Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/magento/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Magento 如果用户已订阅该电子邮件,则在来宾订阅服务器中显示错误消息_Magento_Magento2_Newsletter_Magento2.1 - Fatal编程技术网

Magento 如果用户已订阅该电子邮件,则在来宾订阅服务器中显示错误消息

Magento 如果用户已订阅该电子邮件,则在来宾订阅服务器中显示错误消息,magento,magento2,newsletter,magento2.1,Magento,Magento2,Newsletter,Magento2.1,如果用户已使用电子邮件地址订阅,我想显示自定义消息。 像 你已经订阅了。多谢各位 而不是这个消息 我使用的是magento2.1.8。您应该为处理订阅注册过程的OOTB控制器(Magento/Newsletter/Controller/Subscriber/NewAction.php)定义一个首选项(通过di.xml)在自定义控制器的execute方法中,添加所需的逻辑以检查客户是否已经订阅,并相应地进行处理 您需要修改此简单检查 试试这个- 如果尚未覆盖NewAction.php文件,请转到

如果用户已使用电子邮件地址订阅,我想显示自定义消息。 像

你已经订阅了。多谢各位

而不是这个消息


我使用的是magento2.1.8。

您应该为处理订阅注册过程的OOTB控制器(Magento/Newsletter/Controller/Subscriber/NewAction.php)定义一个首选项(通过di.xml)在自定义控制器的execute方法中,添加所需的逻辑以检查客户是否已经订阅,并相应地进行处理


您需要修改此简单检查

试试这个-

如果尚未覆盖
NewAction.php
文件,请转到此路径,然后打开
NewAction.php
文件

替换此代码:

if ($subscriber->getId() && $subscriber->getSubscriberStatus() == \Magento\Newsletter\Model\Subscriber::STATUS_SUBSCRIBED)
与:


仅此而已。

表示默认情况下,magento2不检查用户是否已订阅?。因为每次我发邮件时都会说“感谢您的订阅”,每次都会给我发邮件。@AwaisKhan-在我的本地主机上查看OOTB M2代码库(仅供参考-我在Magento 2.2.1-dev上运行),看起来确实有一个检查客户是否订阅了(请参阅代码行#127-134)我建议您在安装时查看相同的文件(Magento/Newsletter/Controller/Subscriber/NewAction.php),看看验证逻辑是什么。如果缺少验证,您可以选择首选路径(如上面我的帖子所述),或者,您可以升级到2.2.x/2.3.x
if($subscriber->getId())