【问题标题】:Email Notification when a new review has been added - Magento添加新评论时的电子邮件通知 - Magento
【发布时间】:2012-01-06 14:38:56
【问题描述】:

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

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

现在,我坚持的几件事是这是否需要在 cron 作业上运行,或者它是否能够在发布新评论后立即自行运行。

以及检查新评论和发送电子邮件提醒的具体条件是什么。这只是我的想法,但如果有人对如何做到这一点有更好的概述,非常欢迎提出他们的建议。

提前致谢

【问题讨论】:

  • 找一个观察者或者覆盖通用的magento类。

标签: php magento zend-framework e-commerce


【解决方案1】:

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

【讨论】:

  • 只是想明确一点:没有这样的观察员进行审查,所以这不是正确的方法,至少对于这个请求来说
【解决方案2】:

我从您的描述中了解到“您想在发布新评论时发送邮件确认”。

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

这就是你想要的?

其他详细说明您需要什么..

【讨论】:

    【解决方案3】:

    为了快速且非常肮脏的修复,您可以添加 mail(to,subject,message) 线到 app/code/core/Mage/Review/controllers/ProductController.php 在$session-&gt;addSuccess($this-&gt;__('Your review has been accepted for moderation.')); 之后。

    【讨论】:

    • 试试这个插件。 FmeAddons 提供源代码以及产品包。它会向客户发送电子邮件以进行评论提醒,并在发布新评论时向店主发送电子邮件。 fmeaddons.com/magento/reviews-ratings-booster.html
    • main() 是做什么的?
    • 对不起,那应该是邮件。现已编辑。
    【解决方案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');
                        }
    

    【讨论】:

    • 在你的例子中,每行代码的作用值得添加解释,以便不知道代码的人可以弄清楚每个部分的作用
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-07-23
    • 1970-01-01
    • 1970-01-01
    • 2012-08-04
    • 1970-01-01
    • 2019-10-29
    • 1970-01-01
    相关资源
    最近更新 更多