Jump to content
Sign in to follow this  
dmitry777

Текст письма

Recommended Posts

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

 

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

 

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

Share this post


Link to post
Share on other sites

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

Share this post


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>

 

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

Share this post


Link to post
Share on other sites

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

 

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

Share this post


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 теги не передаются.

Share this post


Link to post
Share on other sites

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

 

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

 

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

 

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

Share this post


Link to post
Share on other sites

$mail->setText($message);

на

$mail->setHtml($message);

Share this post


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();
 
Всё работает

Share this post


Link to post
Share on other sites

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

 

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

 

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

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
You are posting as a guest. If you have an account, please sign in.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×

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.