хуйу нас не матерятся
При отправке заявки через форму обратной связи клиент указывает свой 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);
После этого адрес будет всегда указываться в теле письма.
Если Вы это пытаетесь проделать с новым опенкартом, то 100% не получится. Но главное сам принцип, а не точные инструкции. Поймите суть того что я сделал, и тогда не важно на какой версии опенкарта, всё будет работать.
Спасибо! Очень выручили!