Перейти к публикации
  • разработка интернет магазинов на opencart
  • доработка интернет магазинов на opencart

Обратная связь


ved
 Погделиться

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


Доброго времени суток.  приходит только одно поле при отправки. 

Добавил новые поля в синдартную форму, как теперьь их передать в тело письма.

Opencart Version 2.1.0.2

 

  

     if (($this->request->server['REQUEST_METHOD'] == 'POST') && $this->validate()) {
            $mail = new Mail();
            $mail->protocol = $this->config->get('config_mail_protocol');
            $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->setFrom($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'));
        }


 

пропотому чтовал добавить новую строку, но получается что я перезаписываю и приходит только последняя запись.

 



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


 

Как передать в тело письма, все значения input?

 



$mail->setText($this->request->post['name ']);
$mail->setText($this->request->post['phone ']);
$mail->setText($this->request->post['subject ']);


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


Вы походу давно не спали. В переменную текст запишите и добавляйте:


$text = '';

$text .= $this->request->post['name'] . PHP_EOL; //не забывайте про перенос строки

$text .= $this->request->post['phone'] . PHP_EOL;

$text .= $this->request->post['subject'] . PHP_EOL;

$mail->setText($text);

Если бугдете использовать html в письме, то используйте вместо $mail->setText функцию $mail->setHTML

$text = nl2br($text); //Заменим все переносы на тег <br>

$mail->setHTML($text); //Дадим знать классу mail, что есть html вариант письма

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

Подскажите как олистить поля формы после отправки.

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


Все решилось, после смены браузера. В хроме поля не олищались, а в админке кнопка удалить не рилиила.

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


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

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

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

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

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

Войти

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

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

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

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

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