Opencart - Более Красивый Вид Для Email-уведомления Администратору О Новом Заказе

Тема в разделе "Шаблоны, дизайн и оформление магазина", создана пользователем admin, 24 июн 2016.

  1. TopicStarter Overlay
    Offline

    admin Команда форума Администратор

    Сообщения:
    2.327
    Симпатии:
    77.105
    Репутация:
    170
    Вносим небольшие изменения в стандартный шаблон email письма-уведомления о новом заказе в магазине Opencart

    В Opencart v1.5.x письмо-уведомление на email для администратора магазина о поступлении нового заказа имеет скудный вид и в нём не хватает информации о покупателе.

    Сделаем покрасивее и поудобнее.

    Формирование и отсылка писем происходит в файле catalog/model/checkout/order.php

    (а Русские тексты фраз для писем - в папке catalog/language/russian/mail).

    Итак, в файле catalog/model/checkout/order.php вносим небольшие изменения:

    Код:
    // Admin Alert Mail
    if ($this->config->get('config_alert_mail')) {
    $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";
    
    // оформление письма админу 1
    $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";
    // оформление письма админу 1
    
    $text .= $language->get('text_new_products') . "\n";
    
    foreach ($order_product_query->rows as $result) {
    // оформление письма админу 2
    //$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";
    // оформление письма админу 2
    
    $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'] . "'");
    
    foreach ($order_option_query->rows as $option) {
    $text .= chr(9) . '-' . $option['name'] . ' ' . utf8_truncate($option['value']) . "\n";
    }
    }
    
    $text .= "\n";
    
    $text .= $language->get('text_new_order_total') . "\n";
    
    foreach ($order_total_query->rows as $result) {
    $text .= '  '; // оформление письма админу 3
    $text .= $result['title'] . ' ' . html_entity_decode($result['text'], ENT_NOQUOTES, 'UTF-8') . "\n";
    }
    
    $text .= "\n";
    
    if ($order_info['comment'] != '') {