2012-01-06 55 views
1

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

我打算通过制作一个自定义模块,在发布新评论后立即通知店主(在其联系电子邮件地址)。

现在我所坚持的一些事情是,这是否需要在cron作业上运行,或者是否能够在发布新评论后自行运行。

此外,检查新评论和发送电子邮件警报的条件究竟是什么。这只是我头顶的事情,但如果任何人对如何做到这一点有了更好的概述,欢迎大家不要放弃他们的建议。

在此先感谢

+0

查找观察者或覆盖通用的magento类。 – 2012-01-06 14:50:59

回答

5

迪克洛朗建议你可以使用一个观察者通过电子邮件时产品的意见置于通知您。 看看是否有审查后保存我检查的事件:

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

查看关于Customizing Magento using Event/Observer

这个Magento的维基链接,了解更多信息

如果您只希望在发布评论时收到通知,则此功能正常。如果你想要更具体/有用的链接,你可能想要覆盖Mage_Review中的Magento类(控制器或模型来存储评论ID和东西在会话中。

如果你想包括一些关于张贴评论的细节,你可以从会议上得到它:

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

只是想澄清一下:有没有这样的观察员审查,所以这是不正确的方式,至少对于这个请求 – WonderLand 2012-12-05 17:58:57

1

我从你的描述中可以理解什么是“你想发送邮件确认,当一个新的评论张贴”

在每次审议会出现一个表格后与检查数据 然后你可以保存数据库中的审查数据和异步发送电子邮件通知 要发送电子邮件,您可以设置SMTP服务器连接(无论是在配置中还是通过代码)并发送邮件。

这是你想要的吗?

否则后详细你需要什么..

1

对于一个快速和非常脏的修复,您可以添加 mail(to,subject,message)线 应用程序/代码/核心/法师/评论/控制器/ ProductController.php 后该行$session->addSuccess($this->__('Your review has been accepted for moderation.'));

+0

试试这个插件。 FmeAddons提供源代码以及产品包。它发送电子邮件给客户审查提醒和商店所有者以及新的审查发布时。 http://www.fmeaddons.com/magento/reviews-ratings-booster.html – 2014-10-23 05:08:03

+0

'main()'做了什么? – Dan 2014-11-20 11:41:04

+0

对不起,我应该是邮件。现在编辑。 – Mike 2014-11-26 15:42:37

-1

// after $ rating = $ this-> getRequest() - > getParam('ratings',array()); add

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

// and after $ session-> addSuccess($ this - > __('Your review has been accepted for moderation。')); // add

$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('[email protected]'); 
        $mail->setBody($body); 
        $mail->setSubject('Un nouveau commentaire sur XX'); 
        $mail->setFromEmail('[email protected]'); 
        $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'); 
        } 
+2

对于你的例子中的每行代码都做了什么解释,值得添加一个解释,以便那些不知道代码的人可以找出每个部分的作用 – Jonathan 2014-10-26 21:17:58