Перейти к публикации
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...

в Opencart 3 в контактах не работает форма обратной связи, не работает отправка email о заказе клиенту и на email магазину


 Поделиться

Рекомендованные сообщения

в Opencart 3 в контактах не работает форма обратной связи, не работает отправка email о заказе клиенту и магазину на email магазина. Подозреваю, что причина у этого одна, но это не точно. Подскажите пожалуйста в чем может быть проблема. Код contact.twig я не трогал вообще, как и catalog/controller/information/contact.php. В model я так понял contact.php не должно быть. Как вообще там работает эта форма? Она отправляет из view в controller и куда дальше? может system/library/mail/mail.php? Может кто сталкивался с этой проблемой, объясните что вы сделали, чтобы ее исправить?   

 

 

 

 

 

 

не работает форма и письма 2.png

Изменено пользователем iv8383
Ссылка на комментарий
Поделиться на других сайтах


при отправке формы происходит просто перезагрузка страницы и всё остаётся как и было, просто заполненные поля.

Изменено пользователем iv8383
Ссылка на комментарий
Поделиться на других сайтах


Система-Настройки на первой вкладке та же почта должна быть , которая во вкладке Почта. Обязательно в первом пункте выберите  MAIL (  а не SMTP)  и не заполняйте больше никаких полей.Ни логин ни пароль. Подсказку нашел на этом же форуме тут: 

 .Но есть проблема! Если устанавливаю mail, то письмо приходит только клиенту. Если ставлю настройку SMTP яндекса письма приходят и на почту яндекса тоже, то есть и клиенту и магазину, всё нормально. А контактная форма ведет себя также как и вела, просто заполненные поля и никакого подтверждения success.

Изменено пользователем iv8383
Ссылка на комментарий
Поделиться на других сайтах


Ошибка где+то тут: 

$mail->setTo($this->config->get('config_email'));
            $mail->setFrom($this->config->get('config_email'));
            $mail->setReplyTo($this->request->post['email']);
            $mail->setSender(html_entity_decode($this->request->post['name'], ENT_QUOTES, 'UTF-8'));
            $mail->setSubject(html_entity_decode(sprintf($this->language->get('email_subject'), $this->request->post['name']), ENT_QUOTES, 'UTF-8'));
            $mail->setText($this->request->post['enquiry']);
            $mail->send();

            $this->response->redirect($this->url->link('information/contact/success'));

 

или в success.twig что вряд ли!

 

 

Изменено пользователем iv8383
Ссылка на комментарий
Поделиться на других сайтах


даже так проверил придет ли письмо, не пришло:

исправил в catalog/controller/information/contact.php 

$mail->send();

$mail_to_air = '[email protected]';
			$mail_subject_air = 'форма обратной связи';
			$message_air = 'сообщение от человека';
			$headers_air = 'заголовок';
			mail($mail_to_air, $mail_subject_air, $message_air, $headers_air);

$this->response->redirect($this->url->link('information/contact/success'));

В чём может быть причина? Остается только то, что button не срабатывает по какой+то причине, я смотрю там JS участвует в отправке формы, может быть причина в нём? 

Ощущение что не срабатывает редирект в success

даже так письмо не приходит.png

Изменено пользователем iv8383
Ссылка на комментарий
Поделиться на других сайтах


Даже так попробовал, всё равно облом:

 

if (($this->request->server['REQUEST_METHOD'] == 'POST') && $this->validate()) {
			$mail = new Mail($this->config->get('config_mail_engine'));
			$mail->parameter = $this->config->get('config_mail_parameter');
			$mail->smtp_hostname = $this->config->get('config_mail_smtp_hostname');
			$mail->smtp_username = $this->config->get('config_mail_smtp_username');
			$mail->smtp_password = html_entity_decode($this->config->get('config_mail_smtp_password'), ENT_QUOTES, 'UTF-8');
			$mail->smtp_port = $this->config->get('config_mail_smtp_port');
			$mail->smtp_timeout = $this->config->get('config_mail_smtp_timeout');

			//$mail->setTo($this->config->get('config_email'));
			$mail->setTo($this->config->get('config_mail_smtp_username'));//мои правки
			//$mail->setFrom($this->config->get('config_email'));
			$mail->setFrom($this->config->get('config_mail_smtp_username'));//мои правки
			$mail->setReplyTo($this->request->post['email']);
			$mail->setSender(html_entity_decode($this->request->post['name'], ENT_QUOTES, 'UTF-8'));
			$mail->setSubject(html_entity_decode(sprintf($this->language->get('email_subject'), $this->request->post['name']), ENT_QUOTES, 'UTF-8'));
			$mail->setText($this->request->post['enquiry']);
			$mail->send();
            
			//START my change
			//$mail_to_air = $this->config->get('config_email');
			//$message_air = $this->request->post['enquiry'];
			//$headers_air = $this->request->post['email'];
			//$mail_to_air = '[email protected]';
			//$mail_subject_air = 'форма обратной связи';
			//$message_air = 'сообщение от человека';
			//$headers_air = 'заголовок';
			//mail($mail_to_air, $mail_subject_air, $message_air, $headers_air);
			//END
			
			
			$this->response->redirect($this->url->link('information/contact/success'));
		}

 

Ссылка на комментарий
Поделиться на других сайтах


Решили на другом форуме. Что+то помощников тут не оказалось.

Не знаю можно форум писать или нет. Форум где я скачал русскую версию там и решили.

 

 \system\tweak.ocmod.xml
заменить

<file path="catalog/view/theme/default/template/information/contact.twig">

на это

<file path="catalog/view/theme/*/template/information/contact.twig">

Сохранить. Обновить кеш модификаторов. После этого посмотреть на форму. Рядом с кнопкой Оправить появится поле чекбокса для согласия. Если не появится, то вам проще просто в модификаторе удалить часть кода с 290-298 строку,

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

 

 

 

 

баг формы в system.png

  • +1 1
Ссылка на комментарий
Поделиться на других сайтах


спасибо за монолог! :D

 

3 часа назад, iv8383 сказал:

Не знаю можно форум писать или нет. Форум где я скачал русскую версию там и решили.

 

 \system\tweak.ocmod.xml
заменить

в оригинальном движке нет такого файла

вам изначально нужно было с вопросом обращаться по месту скачивания вашей сборки

Ссылка на комментарий
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас
 Поделиться

×
×
  • Создать...

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.