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

23.03.2016 07:25

При отправке заявки через форму обратной связи клиент указывает свой 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);

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



Обновление OpenSecurity

Вслед за большим обновлением Opencart, подготовил обновление для OpenSecurity.

Переезд на новый сервер

В апреле этого года вышла ubuntu 16.04LTS, которая "из коробки" поддерживает php7. А в свете глобальных изменений в ядре php стало очень заманчиво переехать на обновлённую систему. Кроме этого, давно хотел перейти с apache на ngnix и с mysql на mariadb.


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

Кумыс - 04.02.2017 11:57:02
- 0    + 0
Спасибо! Очень выручили!
Вадим - 18.05.2018 15:22:09
- 0    + 0
Спасибо
ANdrew - 08.10.2019 12:25:28
- 0    + 0
Не помогло((
Ilya - 09.10.2019 14:38:30
- 0    + 0
Если Вы это пытаетесь проделать с новым опенкартом, то 100% не получится. Но главное сам принцип, а не точные инструкции. Поймите суть того что я сделал, и тогда не важно на какой версии опенкарта, всё будет работать.