添加新评论时的电子邮件通知-Magento


Email Notification when a new review has been added - Magento

这可能是任何人都在寻找的功能。每次添加新评论时,我都会向我的店铺的联系人电子邮件地址发送电子邮件通知。

我计划通过制作一个自定义模块来做到这一点,一旦发布新的评论,该模块就会通知店主(在其联系电子邮件地址上)。

现在,我遇到的几个问题是,这是否需要在cron作业上运行,或者一旦发布新的评论,它是否能够自行运行。

此外,检查新评论和发送电子邮件警报的具体条件是什么。这只是我脑子里想不出来的事情,但如果有人对如何做到这一点有更好的了解,我们非常欢迎他们提出建议。

提前感谢

正如Dick Laurent所建议的,当进行产品审查时,您可以使用观察员通过电子邮件通知您。查看保存审查后是否有事件,我检查了:

app/code/core/Mage/Review/etc/config.xml

已经有人在使用这个事件:

        <events>
            <review_save_after>
                <observers>
                    <rss>
                        <class>rss/observer</class>
                        <method>reviewSaveAfter</method>
                    </rss>
                </observers>
            </review_save_after>
        </events>

因此,这就是您要查找的事件:review_save_after

有关使用事件/观察者自定义Magento的更多信息,请参阅此Magento wiki链接

如果你只想在发布评论时得到通知,这是有效的。如果你想要更具体/使用完整的链接,你可能想覆盖Mage_View中的Magento类(在会话中存储审查id和内容的控制器或模型。

如果你想包括一些关于发布评论的细节,你可以从会话中获得:

$session    = Mage::getSingleton('core/session');
$data = $session->getFormData(true);

我从你的描述中理解为"当发布新的评论时,你想发送一封邮件确认"。

在每次审查中,都会有一个带有审查数据的表单帖子。然后,您可以将评审数据保存在数据库中,并异步发送电子邮件通知。要发送电子邮件,您可以设置SMTP服务器连接(在配置中或通过代码),然后只发送邮件。

这就是你想要的吗?

否则,请详细发布您需要的内容。。

为了快速且非常脏的修复,您可以添加mail(to,subject,message)线路至app/code/core/Mage/Review/controllers/ProductController.php在线路CCD_ 4。

//在$rating=$this->getRequest()->getParam('ratings',array())之后;添加

$ratingmsg='';
foreach($data as $key => $value){
            $ratingmsg.='<b>'.$key.':</b> '.$value.'<br/>';
            }

//在$session->addSuccess之后($this->__('您的评论已被接受审核。');//添加

$mail = Mage::getModel('core/email');
                    $body='<b>Produit :</b> '.$product->getName().'<br/>'.$ratingmsg.'<br/><br/>Pour valider ce commantaire rendez vous dans <br/>catalogue > commentaires > commentaires en attente';
                    $mail->setToName('name');
                    $mail->setToEmail('mail@gmail.com');
                    $mail->setBody($body);
                    $mail->setSubject('Un nouveau commentaire sur XX');
                    $mail->setFromEmail('contact@site.com');
                    $mail->setFromName("Name");
                    $mail->setType('html');// YOu can use Html or text as Mail format
                    try {
                    $mail->send();
                    //Mage::getSingleton('core/session')->addSuccess('Your request has been sent');
                    }
                    catch (Exception $e) {
                        Mage::log($e->getMessage(), null, 'mail.log');
                    }