Уведомление по электронной почте, когда новый отзыв был добавлен - Magento - PullRequest
1 голос
/ 06 января 2012

Это, вероятно, функция, которую может искать каждый.Я хотел бы отправлять уведомления по электронной почте на контактный адрес электронной почты моего магазина каждый раз, когда добавляется новый отзыв.

Я планирую сделать это путем создания пользовательского модуля, который сам по себе, как только новый обзорДолжен быть уведомлен владелец магазина (на его контактный адрес электронной почты).

Теперь я застрял в нескольких моментах: нужно ли запускать его на задании cron или он может работать самостоятельно каккак только будет опубликован новый отзыв.

Кроме того, каково будет условие проверки новых отзывов и отправки оповещений по электронной почте.Это всего лишь вещи из головы, но если у кого-то есть более четкое представление о том, как это сделать, то с радостью оставлю их предложения.

Заранее спасибо

Ответы [ 4 ]

5 голосов
/ 06 января 2012

Как предложил Дик Лоран, вы можете использовать наблюдателя, чтобы уведомить вас по электронной почте о размещении обзора продукта. Посмотрев, есть ли событие после сохранения отзыва, я проверил:

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 с помощью Event / Observer

Это работает, если вы хотите получать уведомления только после публикации отзыва. Если вам нужны более конкретные / полезные ссылки, вы можете переопределить класс Magento из Mage_Review (контроллер или модель для хранения идентификатора и содержимого обзора в сеансе.

Если вы хотите включить некоторые подробности о опубликованном обзоре, вы можете получить его из сессии:

$session    = Mage::getSingleton('core/session');
$data = $session->getFormData(true);
1 голос
/ 05 декабря 2013

Для быстрого и очень грязного исправления вы можете добавить mail(to,subject,message) строка Приложение / код / ​​ядро ​​/ Mage / Отзывы / Контроллеры / ProductController.php после строки $session->addSuccess($this->__('Your review has been accepted for moderation.'));.

1 голос
/ 07 января 2012

Что я понял из вашего описания: «Вы хотите отправить подтверждение по электронной почте, когда будет опубликован новый отзыв».

В каждом обзоре будет сообщение с данными обзора.Затем вы можете сохранить данные обзора в БД и асинхронно отправить уведомление по электронной почте.Чтобы отправить электронное письмо, вы можете настроить SMTP-соединение с сервером (либо в конфигурации, либо с помощью кода) и просто отправить письмо.

Это все, что вы хотели?

Еще подробно опишите, что вам нужно ..

0 голосов
/ 27 октября 2014

// после $ rating = $ this-> getRequest () -> getParam ('rating', 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');
                    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...