这可能是任何人都在寻找的功能。每次添加新评论时,我都会向我的店铺的联系人电子邮件地址发送电子邮件通知。
我计划通过制作一个自定义模块来做到这一点,一旦发布新的评论,该模块就会通知店主(在其联系电子邮件地址上)。
现在,我遇到的几个问题是,这是否需要在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');
}