Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Текст письма


dmitry777

Recommended Posts

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

 

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

 

Сам текст лежит по адресу: admin/language/russian/mail/order.php, а где лежит .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

 

после $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 = 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();
 
Всё работает
Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.