Как добавить уведомление по email для модуля комментариев.

загруженноеСтатья обновлена и проверена !
Как я уже писал в новостях одним из недостатком стандартного модуля комментариев на странице товаров является отсутствие уведомления о поступивших сообщениях на электронный ящик магазина. В этой статье я опишу как можно эту функцию добавить. А для тех, кто не хочет или не может работать с кодом я предлагаю купить недорогой модуль лишенный этих недостатков PrestaComments
Так как многие начинающие пользователи уже начали использовать версию PrestaShop 1.6 для примера я буду использовать модуль именно из этой версии, но не что вам не мешает сделать по аналогии с модулем из версии 1.5.
Не вдаваясь подробности, для работы нам понадобиться всего один файл-контроллер комментариев default.php модуля productcomments, который находится в директории \productcomments\controllers\front\
Откройте его текстовым редактором и найдите метод ajaxProcessAddComment () и после строки $comment->save(); это где то 109 строка вставляем следующий код

полный код файла default.php   для версии модуля 3.5.1

 

Разберем код
сначала добавили переменные $product_name-имя товара. Затем идет функция PHP Mail::Send отправки сообщения на электронный адрес, которая содержит в себе переменные {comment_content}-текст сообщения и {product_name}-название товара, а так же указываем имя файла add_comment-’это шаблон сообщения который будет отправлен на почту. Этот шаблон будет в двух вариантах, в формате HTML и в тектовом фале.
Для формата HTML шаблон будет следующим

 

а для текстового формата

 

Далее следует поместить файлы add_comment.html и add_comment.txt в созданную папку mail в папке \productcomments\controllers\front\  модуля и если вы используете русский язык по умолчанию, в папку ru, то есть mail/ru/
Мы наладили оповещения.
До встечи на webnewbie.ru

Comments (17)

Павел
28.07.2014 - 18:34 / Ответить

Всё сделал по инструкции.
А на почту ничего не приходит.
Версия 1.6.0.6
Может вопрос с совместимостью с 0.6?

29.07.2014 - 02:26 / Ответить

Все что описано в этой статье опробовано на практике. Так что все работает, если пробовали не на локальном сервере. От версий и подверсий ничего не зависит.

Павел
29.07.2014 - 16:54 / Ответить

Значит попробуем по второму кругу.

Юрий
17.11.2014 - 13:08 / Ответить

Здравствуйте!
Тоже делал все по инструкции – тоже ничего не приходит. До этого модернизировал TinyMce по Вашей статье – все получилось без проблем.
Не на локалке.

17.11.2014 - 20:40 / Ответить

Попробуйте отправить сообщение через форму обратной связи, если и там письма не приходят значит не настроен почтовый сервис. Еще как вариант задайте почтовый ящик для сайта на его домене. Например, у меня почтовый ящик dulco(at)webnewbie.ru

Юрий
18.11.2014 - 01:21 / Ответить

Отправил сообщение через форму обратной связи – письма приходят. Завел ящик на домене сайта – не помогло. Забил, вернул все обратно.

18.11.2014 - 11:41 / Ответить

Очень жаль, что у Вас не получилось.В дополнении описанном в статье используется тот же метод Mail, что и в форме обратной связи. Возможно не внимательно прочли инструкцию и допустили где то ошибку, например, разместили неверно шаблоны для письма.

Михаил
28.11.2014 - 19:09 / Ответить

День добрый!
Тоже все сделал, как Вы писали, но ни чего не приходит (((
И папки пробовал mail и mail/ru и в категории от корневой этого модуля до front, но ни чего не получилось ((
Ошибок не допускал, проверил четырежды ))

преста 1.6
сайт на хосте
почта если с формы отправлять приходит, но коменыт(отчет) нет (((

Михаил
28.11.2014 - 21:02 / Ответить

Извиняюсь, похоже проблема у меня (((
Подскажите, в чем, всю голову сломал не могу понять((((
При отправке сообщения по форме отправки с сайта. сообщение приходит только в админку сайта, и ни как не хочет дублироваться на почту(((

В настройках электронной почты сайта стоит “Использовать почтовый функционал PHP (рекомендуется; работает в большинстве случаев)”.
Когда отправляю тестовое сообщение (в настройка эл. почты), пишет, что отправленно успешно, но я ни чего не получаю (((
Помогите избавиться от проблемы!!!
Буду признателен!
Спасибо, с уважением, Михаил.

29.11.2014 - 00:18 / Ответить

Обратитесь к хостеру. У Вас не работает почтовый сервис. На сообщение отправленное через форму обратной связи мне пришло уведомление об ошибке отправки ответа
SMTP error from remote mail server after RCPT TO: :
хост mail.zkcrimea.ru [212.154.192.153]: 550-отклонен, поскольку 89.111.179.94 в черный список на
550 cbl.abuseat.org
Blocked – see _http://cbl.abuseat.org/lookup.cgi?ip=89.111.179.94
По поводу вашего вопроса о подтверждении регистрации через email. Есть два бесплатных модуля, поищите в сети. Если не найдете пишите. Сегодня я не смогу Вам дать ссылки, так как у меня уже почти полночь, копаться в архивах некогда.

Владимир
15.10.2015 - 06:27 / Ответить

Спасибо за информацию!
После некоторого ковыряния всё заработало.
По умолчанию в 1.6.0.9 ищется папка с шаблонами “mails”. Пришлось также явно указать её местоположение 10-ым параметром финкции Mail::Send.

Замученый уже желанием получения отчета о получении комента )))
19.11.2015 - 12:02 / Ответить

Тоже ни как не могу заставить получать отчет на ящик о поступившем комментарии.
Обратная связь работает.
преста 1.6.х
Вот интересно, как Владимир добился работоспособности, как он указал “10-параметром” Mail::Send, как это, на мальцах бы кто объяснил((((

Рамиль
15.03.2016 - 22:20 / Ответить

У меня, на 1.6.1.14 то-же не пошло.
Сделал всё по инструкции, нашел строки, подставил код, создал файлы, залил в паки productcomments/mail/ru. Тестовые сообщения отправляются и приходят, пробовал название папки менять, но в конечном счёте ничего не получилось. Ну не совсем ничего, точнее кнопка отправить перестала вообще отправлять отзывы. Жмёшь, жмёшь, а ничего не происходит. отключаешь код и всё начинает работать.
Евгений подскажите может в версии престы проблема?

16.03.2016 - 14:56 / Ответить

Будет время разберусь и сделаю дополнение для статьи

26.03.2016 - 13:14 / Ответить

Статья доработана и проверена на PrestaShop версии 1.6.1.4

adax
11.09.2016 - 09:32 / Ответить

Здравствуйте.А как добавить еще чтобы ссылка на товар в письме была к какому товару комментарий написан?А то по одному названию не поймешь…

11.09.2016 - 19:18 / Ответить

Здравствуйте! Вообще это лишнее для оповещения, но если хочется, то добавляете в файле default.php переменные для линка
$product = new Product((int)$id_product);
$link = new Link();
$url = $url = $link->getProductLink($product);
После этого в методе mail добавляете переменную ссылки для шаблона письма
‘{url}’ => $url
И в шаблоне письма добавляете строки типа
Вы можете просмотреть страницу товара href=”{url}” style=”color:#337ff1″ rel=”nofollow”>”Ссылка на товар” закрывая в теги a

Leave a Reply