Удобный вид email-уведомлений админу о заказе Opencart 1.5.x
- Stats: 10317 0
- Author: admin
- Category: CMS Opencart, Статті, Шпаргалка
- Comments: Комментариев нет
Формируемое в Опенкарт v1.5.x письмо-уведомление для администрации магазина о новом заказе выглядит не очень красиво и не информативно, неудобно для обработки поступивших заказов: не хватает информации о покупателе, а та информация, что есть, сложна для восприятия.
Можно сделать удобнее.
Формирование и отсылка писем происходит в файле
catalog/model/checkout/order.php
Тексты частей писем находятся в папке
catalog/language/russian/mail
— из содержащихся там фраз формируются письма.
«-» будем отмечать что нужно удалить
«+» что нужно добавить
Так же описываем до и после 3-5 фраз кода для облегчения кода
Итак преступим:
Находим файл:
/catalog/language/russian/mail/order.php
// Text
$_['text_new_subject'] = '%s — заказ %s';
$_['text_new_greeting'] = 'Благодарим за интерес к товарам %s. Ваш заказ получен и поступит в обработку после подтверждения оплаты.';
— $_['text_new_received'] = 'Вы получили заказ.';
+$_['text_new_received'] = 'Вы получили заказ';
$_['text_new_link'] = 'Для просмотра Вашего заказа перейдите по ссылке:';
$_['text_new_order_detail'] = 'Детализация заказа';
$_['text_new_instruction'] = 'Инструкции';
После чего находим файл:
/catalog/model/checkout/order.php
И меняем код на:
$subject = sprintf ($language->get ('text_new_subject'), html_entity_decode ($this->config->get ('config_name'), ENT_QUOTES, 'UTF-8'), $order_id);
// Text
— $text = $language->get ('text_new_received') . «\n\n»;
— $text .= $language->get ('text_new_order_id') . ' ' . $order_id . «\n»;
— $text .= $language->get ('text_new_date_added') . ' ' . date ($language->get ('date_format_short'), strtotime ($order_info['date_added'])) . «\n»;
— $text .= $language->get ('text_new_order_status') . ' ' . $order_status . «\n\n»;
+ $text = $language->get ('text_new_received') . ' #'.$order_id . ' ('.date ($language->get ('date_format_short'), strtotime ($order_info['date_added'])).')' . «\n»;
+ // $text .= $language->get ('text_new_order_id') . ' ' . $order_id . «\n»;
+ // $text .= $language->get ('text_new_date_added') . ' ' . date ($language->get ('date_format_short'), strtotime ($order_info['date_added'])) . «\n»;
+ $text .= $language->get ('text_new_order_status') . ' ' . strip_tags ($order_status) . «\n\n»;
+
+ if ( !empty ($order_info['payment_method']) ) $text .= 'payment method: ' . $order_info['payment_method'] . «\n»;
+ // $text .= 'shipping method: ' . $order_info['shipping_method'] . «\n»;
+ if ( !empty ($order_info['email']) ) $text .= 'email: ' . $order_info['email'] . «\n»;
+ if ( !empty ($order_info['telephone']) ) $text .= 'telephone: ' . $order_info['telephone'] . ", ";
+ $text .= 'IP: http://geoiptool.com/en/?IP=' . $order_info['ip'] . «\n\n»;
+
$text .= $language->get ('text_new_products') . «\n»;foreach ($order_product_query->rows as $result) {
— $text .= $result['quantity'] . 'x ' . $result['name'] . ' (' . $result['model'] . ') ' . html_entity_decode ($this->currency->format ($result['total'], $order_info['currency_code'], $order_info['currency_value']), ENT_NOQUOTES, 'UTF-8') . «\n»;
+ $text .= ' ';
+ $text .= html_entity_decode ($this->currency->format ($result['total'], $order_info['currency_code'], $order_info['currency_value']), ENT_NOQUOTES, 'UTF-8');
+ $text .= ' = ';
+ $text .= $result['quantity'] . ' x ' . $result['name'] . ' (' . $result['model'] . «)\n»;$order_option_query = $this->db->query ("SELECT * FROM " . DB_PREFIX . «order_option WHERE order_id = '» . (int)$order_id . «' AND order_product_id = '» . $result['order_product_id'] . «'»);
@@ -457,10 +467,10 @@ class ModelCheckoutOrder extends Model {
}$text .= «\n»;
—
$text .= $language->get ('text_new_order_total') . «\n»;foreach ($order_total_query->rows as $result) {
+ $text .= ' ';
$text .= $result['title'] . ' ' . html_entity_decode ($result['text'], ENT_NOQUOTES, 'UTF-8') . «\n»;
}
Как сделать, что бы админ магазина получал такое же письмо как клиент?
Это очень удобно и очень просто сделать.
Открываем файл:
catalog/model/checkout/order.php
Находим строку с текстом
«// Send to additional alert email»
и парой строк выше будет:
$mail->setText ($text); или $mail->setText (html_entity_decode ($text, ENT_QUOTES, 'UTF-8'));
Замените её на
$mail->setHtml ($html);
У меня это находится в строке номер 500.
И после этого изменения вот какое письмо приходит администратору:
Но при этом не приходит — комментарий клиента!
Комментарий к заказу бывает важен — по этому есть второе решение по поводу email-уведомления о заказе Opencart 1.5.x
Отправить ответ