Jump to content
Search In
  • More options...
Find results that contain...
Find results in...

Текст письма


Recommended Posts

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

 

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

 

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

Link to post
Share on other sites

Вот содержание файла 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>

 

И получаю профит
Link to post
Share on other sites

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

 

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

Link to post
Share on other sites

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

Link to post
Share on other sites

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

Link to post
Share on other sites

 

 

Посмотрите здесь: 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 теги не передаются.
Link to post
Share on other sites

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

 

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

 

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

 

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

Link to post
Share on other sites

Фью

 

в блоке 

 

$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();
 
Всё работает
Link to post
Share on other sites

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

 

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

 

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

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.