Обратная связь Opencart, email отправителя



При отправке заявки через форму обратной связи клиент указывает свой email. Затем, если нужно, можно с ним связаться, используя этот адрес. Но на одном из сайтов возникла проблема: уведомление об обращении на почту прилетает без клиентского email'а.

Проблема оказалась всего в одной строчке кода:

$mail->setFrom($this->request->post['email']);

Opencart пытается отправить email от имени клиента. Но настройки хостинга запрещают подмену адреса отправителя, более того, адрес вида somelogin@anyHosting.ru автоматически выдаётся при регистрации и сменить его нельзя.

Чтобы это поправить, открываем: /catalog/controller/information/contact.php и находим строку:

$mail->setText($this->request->post['enquiry']);

Заменяем её на:

$text = "Email клиента: ".$this->request->post['email']."

".$this->request->post['enquiry'];
$mail->setText($text);

После этого адрес будет всегда указываться в теле письма.


Сообщество: AWS

Комментариев(8)


ID: #472   Создан:
Автор: Кумыс

Спасибо! Очень выручили!

ID: #473   Создан:
Автор: Вадим

Спасибо

ID: #474   Создан:
Автор: ANdrew

Не помогло((

ID: #475   Создан:
Автор: ololoev
>>474

Если Вы это пытаетесь проделать с новым опенкартом, то 100% не получится. Но главное сам принцип, а не точные инструкции. Поймите суть того что я сделал, и тогда не важно на какой версии опенкарта, всё будет работать.

ID: #476   Создан:
Автор: Snapius

На версии 2.2.0 помогло, спасибо :)

ID: #477   Создан:
Автор: Мимо проходящий...

Даже на 3.0.3.1 это сработало.

ID: #478   Создан:
Автор: Кека

Спасибо!! Единственное место, где смогла найти ответ

ID: #479   Создан:
Автор: ekimchik78

Спасибо, работает !!!

Всего: 8 комментариев на 1 страницах

Ваш комментарий будет анонимным. Чтобы оставить не анонимный комментарий, пожалуйста, зарегистрируйтесь



Сообщества