Перейти к содержанию
dmitry777

Текст письма

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

Здравствуйте!

 

Необходимо сменить содержание текста письма, которое приходит клиенту от админа, при смене статуса заказа

 

Сам текст лежит по адресу: admin/language/russian/mail/order.php, а где лежит .tpl от него? 

Поделиться сообщением


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

В вашем вопросе кроется ответ - причем тут письмо к tpl?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Вот содержание файла order.php по адресу: admin/language/russian/mail/order.php

<?php

// Text

$_['text_subject']      = '%s - заказ обновлен %s';

$_['text_order']        = '№ заказа:';

$_['text_date_added']   = 'Дата заказа:';

$_['text_order_status'] = 'Актуальное состояние Вашего заказа:';

$_['text_comment']      = 'Комментарии к Вашему заказу:';

$_['text_link']         = 'Для просмотра Вашего заказа перейдите по ссылке:';

$_['text_footer']       = 'Если у Вас есть какие-либо вопросы, ответьте на это сообщение.';

?>

Здесь, как я понимаю, прописаны функции и их значения (поправьте, если ошибаюсь). Меня интересует, где именно в админке они вызываются?

 

Возьмем первое письмо, которое приходит клиенту:

 

Текст письма находиться по адресу: catalog\language\russian\mail\order.php

 

Если я захочу добавить новую строку в тело письма, сперва я прописываю $_['text_C4H10FO2P']  = 'Зарин спасет мир';

 

Далее, по адресу \catalog\view\theme\default\template\mail\order.tpl, я добавляя в нужное место,скажем вместо powered,

<p style="margin-top: 0px; margin-bottom: 20px;"><?php echo $text_C4H10FO2P; ?></p>

 

И получаю профит

Поделиться сообщением


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

Однако, когда меняется статус заявки, клиенту приходит совсем другое письмо, текст которого можно редактировать по адресу:admin/language/russian/mail/order.php, но как вызвать свою строку в этом письме, мне не очень понятно.

 

Надеюсь, в целом, я доступно изложил свою мысль, если чего-то напутал в терминах, звиняйте

Поделиться сообщением


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

Посмотрите здесь: admin/model/sale/order.php в методе addOrderHistory там, где упоминается переменная $message

Поделиться сообщением


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

html тегов там можно не писать, все равно обрежет, так как по умолчанию оно в plain text отправляется

Поделиться сообщением


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

 

 

Посмотрите здесь: admin/model/sale/order.php в методе addOrderHistory там, где упоминается переменная $message

 

после $message .= $language->get('text_footer'); добавил строку $message .= $language->get('text_new_powered');

 

В order.php по адресу: admin/language/russian/mail/order.php добавил $_['text_new_powered']  = 'Зарин спасет мир <a href="#">Всем зарин</a>.';

 
Все работает, за исключением одного, как написал ashap, html теги не передаются.

Поделиться сообщением


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

Попробовал так:

 

$message .= html_entity_decode($language->get('text_new_powered'));

 

Но не срабатывает

 

Есть ли какой-нибудь способ передавать html как html, а не как символы?

Поделиться сообщением


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

$mail->setText($message);

на

$mail->setHtml($message);

Поделиться сообщением


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

Фью

 

в блоке 

 

$mail = new Mail();

$mail->protocol = $this->config->get('config_mail_protocol');
$mail->parameter = $this->config->get('config_mail_parameter');
$mail->hostname = $this->config->get('config_smtp_host');
$mail->username = $this->config->get('config_smtp_username');
$mail->password = $this->config->get('config_smtp_password');
$mail->port = $this->config->get('config_smtp_port');
$mail->timeout = $this->config->get('config_smtp_timeout');
$mail->setTo($order_info['email']);
$mail->setFrom($this->config->get('config_email'));
$mail->setSender($order_info['store_name']);
$mail->setSubject(html_entity_decode($subject, ENT_QUOTES, 'UTF-8'));
$mail->setText(html_entity_decode($message, ENT_QUOTES, 'UTF-8'));
$mail->send();
 
добавил строку $mail->setHtml($message);,  после $mail->setText(html_entity_decode($message, ENT_QUOTES, 'UTF-8')); - получилось:
 
$mail = new Mail();
$mail->protocol = $this->config->get('config_mail_protocol');
$mail->parameter = $this->config->get('config_mail_parameter');
$mail->hostname = $this->config->get('config_smtp_host');
$mail->username = $this->config->get('config_smtp_username');
$mail->password = $this->config->get('config_smtp_password');
$mail->port = $this->config->get('config_smtp_port');
$mail->timeout = $this->config->get('config_smtp_timeout');
$mail->setTo($order_info['email']);
$mail->setFrom($this->config->get('config_email'));
$mail->setSender($order_info['store_name']);
$mail->setSubject(html_entity_decode($subject, ENT_QUOTES, 'UTF-8'));
$mail->setText(html_entity_decode($message, ENT_QUOTES, 'UTF-8'));
$mail->setHtml($message);
$mail->send();
 
Всё работает

Поделиться сообщением


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

Спасибо всем, кто отозвался и помог решить данный вопрос!

 

В особенности ashap и Andretti

 

Вопрос решён - Можно закрывать

Поделиться сообщением


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

Для публикации сообщений создайте учётную запись или авторизуйтесь

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

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

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

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