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

时间:2012-01-06 14:38:57

标签: php magento zend-framework e-commerce

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

我打算通过制作一个自定义模块来实现这一点,一旦发布新评论,该模块就会通知商店所有者(通过其联系电子邮件地址)。

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

还有什么条件可以检查新的评论和发送电子邮件提醒。这只是我头脑中的事情,但如果有人对如何做到这一点有了更好的概述,我们非常欢迎他们提出建议。

提前致谢

4 个答案:

答案 0 :(得分:5)

正如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

有关Customizing Magento using Event/Observer

的更多信息,请参阅此Magento wiki链接

如果您只想在发布评论时收到通知,则此方法有效。如果您想要更具体/有用的链接,您可能希望从Mage_Review(控制器或模型)覆盖Magento类,以便在会话中存储审阅ID和内容。

如果您想要包含有关已发布评论的一些详细信息,可以从会话中获取:

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

答案 1 :(得分:1)

我从您的描述中理解的是“您希望在发布新评论时发送邮件确认”。

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

这就是你想要的一切吗?

另外详细说明你需要的东西..

答案 2 :(得分:1)

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

答案 3 :(得分:-1)

// $ rating = $ this-&gt; getRequest() - &gt; getParam('ratings',array());添加

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

//以及$ session-&gt; addSuccess($ this-&gt; __('您的评论已被接受审核。')); //添加

$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');
                    }