rubezhnoe95 Опубликовано: 18 гдекабря 2020 Погделиться Опубликовано: 18 гдекабря 2020 Ситуация икая. На сайте 3 языка, Русский, ******ский и Английский Когда покупатель заказывает товар то сообещёние о заказе приходит покупателю на языке на котором он смотрел сайт, НО и администратору приходит сообещёние на том же языке. Как можно указать или усиновить язык для писем администратору ? Пропотому чтовал через order.php менять направление файла переводов, добился только того что администратору приходит на нужном языке только название темы и первая строка "Вы полулили заказ" а всё осильное (информация о товаре) на языке на котором заказал клиент. Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться...
esculapra Опубликовано: 18 гдекабря 2020 Погделиться Опубликовано: 18 гдекабря 2020 Нужно жестко прописать ид языка, тогда описание бугдет на нужном языке. Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться... rubezhnoe95 Опубликовано: 18 гдекабря 2020 Автор Погделиться Опубликовано: 18 гдекабря 2020 2 часа назад, esculapra сказал: Нужно жестко прописать ид языка, тогда описание бугдет на нужном языке. Я бы сгделал бы ик если бы в письме администратору был бы икой пункт в order.php, был один пункт ггде можно прописать но он не зарилиил Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться... esculapra Опубликовано: 18 гдекабря 2020 Погделиться Опубликовано: 18 гдекабря 2020 (изменено) 20 минут назад, rubezhnoe95 сказал: в order.php, был один пункт ггде можно прописать но он не зарилиил я счас на ноуте, а все на локалке - покажи кусок кода. у меня собака умерла - я в гдепрессии Изменено 18 гдекабря 2020 пользователем esculapra Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться... rubezhnoe95 Опубликовано: 18 гдекабря 2020 Автор Погделиться Опубликовано: 18 гдекабря 2020 1 час назад, esculapra сказал: я счас на ноуте, а все на локалке - покажи кусок кода. у меня собака умерла - я в гдепрессии Файл order.php <?php class ControllerMailOrder extends Controller { public function index(&$route, &$args) { if (isset($args[0])) { $order_id = $args[0]; } else { $order_id = 0; } if (isset($args[1])) { $order_status_id = $args[1]; } else { $order_status_id = 0; } if (isset($args[2])) { $comment = $args[2]; } else { $comment = ''; } if (isset($args[3])) { $notify = $args[3]; } else { $notify = ''; } // We need to grab the old order status ID $order_info = $this->model_checkout_order->getOrder($order_id); if ($order_info) { // If order status is 0 then becomes greater than 0 send main html email if (!$order_info['order_status_id'] && $order_status_id) { $this->add($order_info, $order_status_id, $comment, $notify); } // If order status is not 0 then send update text email if ($order_info['order_status_id'] && $order_status_id && $notify) { $this->edit($order_info, $order_status_id, $comment, $notify); } } } public function add($order_info, $order_status_id, $comment, $notify) { // Check for any downloadable products $download_status = false; $order_products = $this->model_checkout_order->getOrderProducts($order_info['order_id']); foreach ($order_products as $order_product) { // Check if there are any linked downloads $product_download_query = $this->db->query("SELECT COUNT(*) AS total FROM `" . DB_PREFIX . "product_to_download` WHERE product_id = '" . (int)$order_product['product_id'] . "'"); if ($product_download_query->row['total']) { $download_status = true; } } // Load the language for any mails that might be required to be sent out $language = new Language($order_info['language_code']); $language->load($order_info['language_code']); $language->load('mail/order_add'); // HTML Mail $data['title'] = sprintf($language->get('text_subject'), $order_info['store_name'], $order_info['order_id']); $data['text_greeting'] = sprintf($language->get('text_greeting'), $order_info['store_name']); $data['text_link'] = $language->get('text_link'); $data['text_download'] = $language->get('text_download'); $data['text_order_detail'] = $language->get('text_order_detail'); $data['text_instruction'] = $language->get('text_instruction'); $data['text_order_id'] = $language->get('text_order_id'); $data['text_date_added'] = $language->get('text_date_added'); $data['text_payment_method'] = $language->get('text_payment_method'); $data['text_shipping_method'] = $language->get('text_shipping_method'); $data['text_email'] = $language->get('text_email'); $data['text_telephone'] = $language->get('text_telephone'); $data['text_ip'] = $language->get('text_ip'); $data['text_order_status'] = $language->get('text_order_status'); $data['text_payment_address'] = $language->get('text_payment_address'); $data['text_shipping_address'] = $language->get('text_shipping_address'); $data['text_product'] = $language->get('text_product'); $data['text_model'] = $language->get('text_model'); $data['text_quantity'] = $language->get('text_quantity'); $data['text_price'] = $language->get('text_price'); $data['text_total'] = $language->get('text_total'); $data['text_footer'] = $language->get('text_footer'); $data['logo'] = $order_info['store_url'] . 'image/' . $this->config->get('config_logo'); $data['store_name'] = $order_info['store_name']; $data['store_url'] = $order_info['store_url']; $data['customer_id'] = $order_info['customer_id']; $data['link'] = $order_info['store_url'] . 'index.php?route=account/order/info&order_id=' . $order_info['order_id']; if ($download_status) { $data['download'] = $order_info['store_url'] . 'index.php?route=account/download'; } else { $data['download'] = ''; } $data['order_id'] = $order_info['order_id']; $data['date_added'] = date($language->get('date_format_short'), strtotime($order_info['date_added'])); $data['payment_method'] = $order_info['payment_method']; $data['shipping_method'] = $order_info['shipping_method']; $data['email'] = $order_info['email']; $data['telephone'] = $order_info['telephone']; $data['ip'] = $order_info['ip']; $order_status_query = $this->db->query("SELECT * FROM " . DB_PREFIX . "order_status WHERE order_status_id = '" . (int)$order_status_id . "' AND language_id = '" . (int)$order_info['language_id'] . "'"); if ($order_status_query->num_rows) { $data['order_status'] = $order_status_query->row['name']; } else { $data['order_status'] = ''; } if ($comment && $notify) { $data['comment'] = nl2br($comment); } else { $data['comment'] = ''; } if ($order_info['payment_address_format']) { $format = $order_info['payment_address_format']; } else { $format = '{firstname} {lastname}' . "\n" . '{company}' . "\n" . '{address_1}' . "\n" . '{address_2}' . "\n" . '{city} {postcode}' . "\n" . '{zone}' . "\n" . '{country}'; } $find = array( '{firstname}', '{lastname}', '{company}', '{address_1}', '{address_2}', '{city}', '{postcode}', '{zone}', '{zone_code}', '{country}' ); $replace = array( 'firstname' => $order_info['payment_firstname'], 'lastname' => $order_info['payment_lastname'], 'company' => $order_info['payment_company'], 'address_1' => $order_info['payment_address_1'], 'address_2' => $order_info['payment_address_2'], 'city' => $order_info['payment_city'], 'postcode' => $order_info['payment_postcode'], 'zone' => $order_info['payment_zone'], 'zone_code' => $order_info['payment_zone_code'], 'country' => $order_info['payment_country'] ); $data['payment_address'] = str_replace(array("\r\n", "\r", "\n"), '<br />', preg_replace(array("/\s\s+/", "/\r\r+/", "/\n\n+/"), '<br />', trim(str_replace($find, $replace, $format)))); if ($order_info['shipping_address_format']) { $format = $order_info['shipping_address_format']; } else { $format = '{firstname} {lastname}' . "\n" . '{company}' . "\n" . '{address_1}' . "\n" . '{address_2}' . "\n" . '{city} {postcode}' . "\n" . '{zone}' . "\n" . '{country}'; } $find = array( '{firstname}', '{lastname}', '{company}', '{address_1}', '{address_2}', '{city}', '{postcode}', '{zone}', '{zone_code}', '{country}' ); $replace = array( 'firstname' => $order_info['shipping_firstname'], 'lastname' => $order_info['shipping_lastname'], 'company' => $order_info['shipping_company'], 'address_1' => $order_info['shipping_address_1'], 'address_2' => $order_info['shipping_address_2'], 'city' => $order_info['shipping_city'], 'postcode' => $order_info['shipping_postcode'], 'zone' => $order_info['shipping_zone'], 'zone_code' => $order_info['shipping_zone_code'], 'country' => $order_info['shipping_country'] ); $data['shipping_address'] = str_replace(array("\r\n", "\r", "\n"), '<br />', preg_replace(array("/\s\s+/", "/\r\r+/", "/\n\n+/"), '<br />', trim(str_replace($find, $replace, $format)))); $this->load->model('tool/upload'); // Products $data['products'] = array(); foreach ($order_products as $order_product) { $option_data = array(); $order_options = $this->model_checkout_order->getOrderOptions($order_info['order_id'], $order_product['order_product_id']); foreach ($order_options as $order_option) { if ($order_option['type'] != 'file') { $value = $order_option['value']; } else { $upload_info = $this->model_tool_upload->getUploadByCode($order_option['value']); if ($upload_info) { $value = $upload_info['name']; } else { $value = ''; } } $option_data[] = array( 'name' => $order_option['name'], 'value' => (utf8_strlen($value) > 20 ? utf8_substr($value, 0, 20) . '..' : $value) ); } $data['products'][] = array( 'name' => $order_product['name'], 'model' => $order_product['model'], 'option' => $option_data, 'quantity' => $order_product['quantity'], 'price' => $this->currency->format($order_product['price'] + ($this->config->get('config_tax') ? $order_product['tax'] : 0), $order_info['currency_code'], $order_info['currency_value']), 'total' => $this->currency->format($order_product['total'] + ($this->config->get('config_tax') ? ($order_product['tax'] * $order_product['quantity']) : 0), $order_info['currency_code'], $order_info['currency_value']) ); } // Vouchers $data['vouchers'] = array(); $order_vouchers = $this->model_checkout_order->getOrderVouchers($order_info['order_id']); foreach ($order_vouchers as $order_voucher) { $data['vouchers'][] = array( 'description' => $order_voucher['description'], 'amount' => $this->currency->format($order_voucher['amount'], $order_info['currency_code'], $order_info['currency_value']), ); } // Order Totals $data['totals'] = array(); $order_totals = $this->model_checkout_order->getOrderTotals($order_info['order_id']); foreach ($order_totals as $order_total) { $data['totals'][] = array( 'title' => $order_total['title'], 'text' => $this->currency->format($order_total['value'], $order_info['currency_code'], $order_info['currency_value']), ); } $this->load->model('setting/setting'); $from = $this->model_setting_setting->getSettingValue('config_email', $order_info['store_id']); if (!$from) { $from = $this->config->get('config_email'); } $mail = new Mail($this->config->get('config_mail_engine')); $mail->parameter = $this->config->get('config_mail_parameter'); $mail->smtp_hostname = $this->config->get('config_mail_smtp_hostname'); $mail->smtp_username = $this->config->get('config_mail_smtp_username'); $mail->smtp_password = html_entity_decode($this->config->get('config_mail_smtp_password'), ENT_QUOTES, 'UTF-8'); $mail->smtp_port = $this->config->get('config_mail_smtp_port'); $mail->smtp_timeout = $this->config->get('config_mail_smtp_timeout'); $mail->setTo($order_info['email']); $mail->setFrom($from); $mail->setSender(html_entity_decode($order_info['store_name'], ENT_QUOTES, 'UTF-8')); $mail->setSubject(html_entity_decode(sprintf($language->get('text_subject'), $order_info['store_name'], $order_info['order_id']), ENT_QUOTES, 'UTF-8')); $mail->setHtml($this->load->view('mail/order_add', $data)); $mail->send(); } public function edit($order_info, $order_status_id, $comment) { $language = new Language($order_info['language_code']); $language->load($order_info['language_code']); $language->load('mail/order_edit'); $data['text_order_id'] = $language->get('text_order_id'); $data['text_date_added'] = $language->get('text_date_added'); $data['text_order_status'] = $language->get('text_order_status'); $data['text_link'] = $language->get('text_link'); $data['text_comment'] = $language->get('text_comment'); $data['text_footer'] = $language->get('text_footer'); $data['order_id'] = $order_info['order_id']; $data['date_added'] = date($language->get('date_format_short'), strtotime($order_info['date_added'])); $order_status_query = $this->db->query("SELECT * FROM " . DB_PREFIX . "order_status WHERE order_status_id = '" . (int)$order_status_id . "' AND language_id = '" . (int)$order_info['language_id'] . "'"); if ($order_status_query->num_rows) { $data['order_status'] = $order_status_query->row['name']; } else { $data['order_status'] = ''; } if ($order_info['customer_id']) { $data['link'] = $order_info['store_url'] . 'index.php?route=account/order/info&order_id=' . $order_info['order_id']; } else { $data['link'] = ''; } $data['comment'] = strip_tags($comment); $this->load->model('setting/setting'); $from = $this->model_setting_setting->getSettingValue('config_email', $order_info['store_id']); if (!$from) { $from = $this->config->get('config_email'); } $mail = new Mail($this->config->get('config_mail_engine')); $mail->parameter = $this->config->get('config_mail_parameter'); $mail->smtp_hostname = $this->config->get('config_mail_smtp_hostname'); $mail->smtp_username = $this->config->get('config_mail_smtp_username'); $mail->smtp_password = html_entity_decode($this->config->get('config_mail_smtp_password'), ENT_QUOTES, 'UTF-8'); $mail->smtp_port = $this->config->get('config_mail_smtp_port'); $mail->smtp_timeout = $this->config->get('config_mail_smtp_timeout'); $mail->setTo($order_info['email']); $mail->setFrom($from); $mail->setSender(html_entity_decode($order_info['store_name'], ENT_QUOTES, 'UTF-8')); $mail->setSubject(html_entity_decode(sprintf($language->get('text_subject'), $order_info['store_name'], $order_info['order_id']), ENT_QUOTES, 'UTF-8')); $mail->setText($this->load->view('mail/order_edit', $data)); $mail->send(); } // Admin Alert Mail public function alert(&$route, &$args) { if (isset($args[0])) { $order_id = $args[0]; } else { $order_id = 0; } if (isset($args[1])) { $order_status_id = $args[1]; } else { $order_status_id = 0; } if (isset($args[2])) { $comment = $args[2]; } else { $comment = ''; } if (isset($args[3])) { $notify = $args[3]; } else { $notify = ''; } $order_info = $this->model_checkout_order->getOrder($order_id); if ($order_info && !$order_info['order_status_id'] && $order_status_id && in_array('order', (array)$this->config->get('config_mail_alert'))) { $this->load->language('mail/order_alert'); // HTML Mail $data['text_received'] = $this->language->get('text_received'); $data['text_order_id'] = $this->language->get('text_order_id'); $data['text_date_added'] = $this->language->get('text_date_added'); $data['text_order_status'] = $this->language->get('text_order_status'); $data['text_product'] = $this->language->get('text_product'); $data['text_total'] = $this->language->get('text_total'); $data['text_comment'] = $this->language->get('text_comment'); $data['order_id'] = $order_info['order_id']; $data['date_added'] = date($this->language->get('date_format_short'), strtotime($order_info['date_added'])); $order_status_query = $this->db->query("SELECT * FROM " . DB_PREFIX . "order_status WHERE order_status_id = '" . (int)$order_status_id . "' AND language_id = '" . (int)$this->config->get('config_language_id') . "'"); if ($order_status_query->num_rows) { $data['order_status'] = $order_status_query->row['name']; } else { $data['order_status'] = ''; } $this->load->model('tool/upload'); $data['products'] = array(); $order_products = $this->model_checkout_order->getOrderProducts($order_id); foreach ($order_products as $order_product) { $option_data = array(); $order_options = $this->model_checkout_order->getOrderOptions($order_info['order_id'], $order_product['order_product_id']); foreach ($order_options as $order_option) { if ($order_option['type'] != 'file') { $value = $order_option['value']; } else { $upload_info = $this->model_tool_upload->getUploadByCode($order_option['value']); if ($upload_info) { $value = $upload_info['name']; } else { $value = ''; } } $option_data[] = array( 'name' => $order_option['name'], 'value' => (utf8_strlen($value) > 20 ? utf8_substr($value, 0, 20) . '..' : $value) ); } $data['products'][] = array( 'name' => $order_product['name'], 'model' => $order_product['model'], 'quantity' => $order_product['quantity'], 'option' => $option_data, 'total' => html_entity_decode($this->currency->format($order_product['total'] + ($this->config->get('config_tax') ? ($order_product['tax'] * $order_product['quantity']) : 0), $order_info['currency_code'], $order_info['currency_value']), ENT_NOQUOTES, 'UTF-8') ); } $data['vouchers'] = array(); $order_vouchers = $this->model_checkout_order->getOrderVouchers($order_id); foreach ($order_vouchers as $order_voucher) { $data['vouchers'][] = array( 'description' => $order_voucher['description'], 'amount' => html_entity_decode($this->currency->format($order_voucher['amount'], $order_info['currency_code'], $order_info['currency_value']), ENT_NOQUOTES, 'UTF-8') ); } $data['totals'] = array(); $order_totals = $this->model_checkout_order->getOrderTotals($order_id); foreach ($order_totals as $order_total) { $data['totals'][] = array( 'title' => $order_total['title'], 'value' => html_entity_decode($this->currency->format($order_total['value'], $order_info['currency_code'], $order_info['currency_value']), ENT_NOQUOTES, 'UTF-8') ); } $data['comment'] = strip_tags($order_info['comment']); $mail = new Mail($this->config->get('config_mail_engine')); $mail->parameter = $this->config->get('config_mail_parameter'); $mail->smtp_hostname = $this->config->get('config_mail_smtp_hostname'); $mail->smtp_username = $this->config->get('config_mail_smtp_username'); $mail->smtp_password = html_entity_decode($this->config->get('config_mail_smtp_password'), ENT_QUOTES, 'UTF-8'); $mail->smtp_port = $this->config->get('config_mail_smtp_port'); $mail->smtp_timeout = $this->config->get('config_mail_smtp_timeout'); $mail->setTo($this->config->get('config_email')); $mail->setFrom($this->config->get('config_email')); $mail->setSender(html_entity_decode($order_info['store_name'], ENT_QUOTES, 'UTF-8')); $mail->setSubject(html_entity_decode(sprintf($this->language->get('text_subject'), $this->config->get('config_name'), $order_info['order_id']), ENT_QUOTES, 'UTF-8')); $mail->setText($this->load->view('mail/order_alert', $data)); $mail->send(); // Send to additional alert emails $emails = explode(',', $this->config->get('config_mail_alert_email')); foreach ($emails as $email) { if ($email && filter_var($email, FILTER_VALIDATE_EMAIL)) { $mail->setTo($email); $mail->send(); } } } } } Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться... rubezhnoe95 Опубликовано: 18 гдекабря 2020 Автор Погделиться Опубликовано: 18 гдекабря 2020 1 час назад, esculapra сказал: я счас на ноуте, а все на локалке - покажи кусок кода. у меня собака умерла - я в гдепрессии Или можно как то вот икие запросы запрашивать первый ID языка $this->language->get('text_received') Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться... esculapra Опубликовано: 18 гдекабря 2020 Погделиться Опубликовано: 18 гдекабря 2020 В системе есть public function set($key, $value) { $this->data[$key] = $value; } можно $this->language->set( 'ru_config_mail_engine', 'тут текст' ); и дное по аналогии. потом полулить перевод с указанием новой переменной Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться... esculapra Опубликовано: 18 гдекабря 2020 Погделиться Опубликовано: 18 гдекабря 2020 или public function merge(&$data) { array_merge($this->data, $data); } $data_plus = array( 'ru_config_mail_engine' => 'тут текст' ); $this->language->merge($data_plus); потом вызвать с указанием новой переменной Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться... buslikdrev Опубликовано: 18 гдекабря 2020 Погделиться Опубликовано: 18 гдекабря 2020 del Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться... buslikdrev Опубликовано: 18 гдекабря 2020 Погделиться Опубликовано: 18 гдекабря 2020 7 часов назад, rubezhnoe95 сказал: Или можно как то вот икие запросы запрашивать первый ID языка $this->language->get('text_received') $language = new Language('ru-ru'); $language->load('mail/order'); $language->get('text_new_model'); или $language = new Language('ru-ru'); foreach ($language->load('mail/order') as $key => $lang) { $this->language->set($key, $lang); } $this->language->get('text_new_model'); Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться... Создайте аккаунт или войдите в него для комментирования Вы должны быть пользователем, чтобы осивить комменирий Создать аккаунт Зарегистрируйтесь для получения аккауни. Это просто! Зарегистрировать аккаунт Войти Уже зарегистрированы? Войдите згдесь. Войти сейчас Погделиться Больше спосопотому чтов погделиться... Подпислики 0 Перейти к списку тем Похожие публикации Оповеещёние администратору о том, что товар законлился Автор: Nijest, 14 января 1 ответ 110 просмотров drujban 14 января [Решено] Как воссиновить права доступа администратора? 1 2 3 Автор: Igor174, 16 июля 2013 права доступа воссиновить (и ещё 1) Теги: права доступа воссиновить администратора 52 отвеи 25 039 просмотров foggy В воскресенье в 10:49 Итого в письме Автор: artem2103, 4 января 4 отвеи 172 просмотра Tom 5 января Как настроить платёжный шлюз? Автор: franzyfox, В субпотому чтоту в 18:21 1 ответ 69 просмотров spectre В субпотому чтоту в 19:49 SEO для 2х языков Автор: Aleks86, 7 января 0 ответов 65 просмотров Aleks86 7 января Сейчас на страниэто 0 пользователей Нет пользователей, просматривающих эту страницу. Последние темы Последние дополнения Последние новости Вся активность Главная Opencart 3.x Opencart 3.x: Локализация Как настроить письмо администратору на одном языке Покупателям Оплаи дополнений физическими лицами Оплаи дополнений юридическими лицами Политика возвратов Разрилитликам Регламент размеещёния дополнений Регламент продаж и подгдержки дополнений Виртуальный аккаунт автора Политика продвижения объявлений API каилога дополнений Урегулирование споров по авторским правам Полезная информация Публичная офери Политика возвратов Политика конфигденциальности Платоженая политика Политика Передали Персональных Данных Политика прозрачности Последние дополнения Chameleon - адаптивный универсальный шаблон + Быстрый Сирт Автор: 29aleksey Wayforpay API оплаи для Opencart 2.3 Автор: bogdan281989 TgMarket - Модуль интернет магазина в телеграмме. Автор: Rassol2 ShowCase – адаптивный универсальный шаблон Автор: octemplates Telnotification Автор: Yevhenii_7777 × Уже зарегистрированы? Войти Регистрация Разгдел покупок Назад Приобретенные дополнения Ваши счеи Список желаний Альтернативные коникты Форум Новости ocStore Назад Официальный сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Скачать ocStore Докумениция История версий ocStore Блоги Модули Шаблоны Назад Бесплатные шаблоны Платные шаблоны Услуги FAQ OpenCart.Pro Назад Демо Купить Сравнение Хостинг для OpenCart × Создать... Важная информация На нашем сайте используются файлы cookie и происходит обрилитка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфигденциальности. Я принимаю
rubezhnoe95 Опубликовано: 18 гдекабря 2020 Автор Погделиться Опубликовано: 18 гдекабря 2020 2 часа назад, esculapra сказал: Нужно жестко прописать ид языка, тогда описание бугдет на нужном языке. Я бы сгделал бы ик если бы в письме администратору был бы икой пункт в order.php, был один пункт ггде можно прописать но он не зарилиил Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться...
esculapra Опубликовано: 18 гдекабря 2020 Погделиться Опубликовано: 18 гдекабря 2020 (изменено) 20 минут назад, rubezhnoe95 сказал: в order.php, был один пункт ггде можно прописать но он не зарилиил я счас на ноуте, а все на локалке - покажи кусок кода. у меня собака умерла - я в гдепрессии Изменено 18 гдекабря 2020 пользователем esculapra Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться... rubezhnoe95 Опубликовано: 18 гдекабря 2020 Автор Погделиться Опубликовано: 18 гдекабря 2020 1 час назад, esculapra сказал: я счас на ноуте, а все на локалке - покажи кусок кода. у меня собака умерла - я в гдепрессии Файл order.php <?php class ControllerMailOrder extends Controller { public function index(&$route, &$args) { if (isset($args[0])) { $order_id = $args[0]; } else { $order_id = 0; } if (isset($args[1])) { $order_status_id = $args[1]; } else { $order_status_id = 0; } if (isset($args[2])) { $comment = $args[2]; } else { $comment = ''; } if (isset($args[3])) { $notify = $args[3]; } else { $notify = ''; } // We need to grab the old order status ID $order_info = $this->model_checkout_order->getOrder($order_id); if ($order_info) { // If order status is 0 then becomes greater than 0 send main html email if (!$order_info['order_status_id'] && $order_status_id) { $this->add($order_info, $order_status_id, $comment, $notify); } // If order status is not 0 then send update text email if ($order_info['order_status_id'] && $order_status_id && $notify) { $this->edit($order_info, $order_status_id, $comment, $notify); } } } public function add($order_info, $order_status_id, $comment, $notify) { // Check for any downloadable products $download_status = false; $order_products = $this->model_checkout_order->getOrderProducts($order_info['order_id']); foreach ($order_products as $order_product) { // Check if there are any linked downloads $product_download_query = $this->db->query("SELECT COUNT(*) AS total FROM `" . DB_PREFIX . "product_to_download` WHERE product_id = '" . (int)$order_product['product_id'] . "'"); if ($product_download_query->row['total']) { $download_status = true; } } // Load the language for any mails that might be required to be sent out $language = new Language($order_info['language_code']); $language->load($order_info['language_code']); $language->load('mail/order_add'); // HTML Mail $data['title'] = sprintf($language->get('text_subject'), $order_info['store_name'], $order_info['order_id']); $data['text_greeting'] = sprintf($language->get('text_greeting'), $order_info['store_name']); $data['text_link'] = $language->get('text_link'); $data['text_download'] = $language->get('text_download'); $data['text_order_detail'] = $language->get('text_order_detail'); $data['text_instruction'] = $language->get('text_instruction'); $data['text_order_id'] = $language->get('text_order_id'); $data['text_date_added'] = $language->get('text_date_added'); $data['text_payment_method'] = $language->get('text_payment_method'); $data['text_shipping_method'] = $language->get('text_shipping_method'); $data['text_email'] = $language->get('text_email'); $data['text_telephone'] = $language->get('text_telephone'); $data['text_ip'] = $language->get('text_ip'); $data['text_order_status'] = $language->get('text_order_status'); $data['text_payment_address'] = $language->get('text_payment_address'); $data['text_shipping_address'] = $language->get('text_shipping_address'); $data['text_product'] = $language->get('text_product'); $data['text_model'] = $language->get('text_model'); $data['text_quantity'] = $language->get('text_quantity'); $data['text_price'] = $language->get('text_price'); $data['text_total'] = $language->get('text_total'); $data['text_footer'] = $language->get('text_footer'); $data['logo'] = $order_info['store_url'] . 'image/' . $this->config->get('config_logo'); $data['store_name'] = $order_info['store_name']; $data['store_url'] = $order_info['store_url']; $data['customer_id'] = $order_info['customer_id']; $data['link'] = $order_info['store_url'] . 'index.php?route=account/order/info&order_id=' . $order_info['order_id']; if ($download_status) { $data['download'] = $order_info['store_url'] . 'index.php?route=account/download'; } else { $data['download'] = ''; } $data['order_id'] = $order_info['order_id']; $data['date_added'] = date($language->get('date_format_short'), strtotime($order_info['date_added'])); $data['payment_method'] = $order_info['payment_method']; $data['shipping_method'] = $order_info['shipping_method']; $data['email'] = $order_info['email']; $data['telephone'] = $order_info['telephone']; $data['ip'] = $order_info['ip']; $order_status_query = $this->db->query("SELECT * FROM " . DB_PREFIX . "order_status WHERE order_status_id = '" . (int)$order_status_id . "' AND language_id = '" . (int)$order_info['language_id'] . "'"); if ($order_status_query->num_rows) { $data['order_status'] = $order_status_query->row['name']; } else { $data['order_status'] = ''; } if ($comment && $notify) { $data['comment'] = nl2br($comment); } else { $data['comment'] = ''; } if ($order_info['payment_address_format']) { $format = $order_info['payment_address_format']; } else { $format = '{firstname} {lastname}' . "\n" . '{company}' . "\n" . '{address_1}' . "\n" . '{address_2}' . "\n" . '{city} {postcode}' . "\n" . '{zone}' . "\n" . '{country}'; } $find = array( '{firstname}', '{lastname}', '{company}', '{address_1}', '{address_2}', '{city}', '{postcode}', '{zone}', '{zone_code}', '{country}' ); $replace = array( 'firstname' => $order_info['payment_firstname'], 'lastname' => $order_info['payment_lastname'], 'company' => $order_info['payment_company'], 'address_1' => $order_info['payment_address_1'], 'address_2' => $order_info['payment_address_2'], 'city' => $order_info['payment_city'], 'postcode' => $order_info['payment_postcode'], 'zone' => $order_info['payment_zone'], 'zone_code' => $order_info['payment_zone_code'], 'country' => $order_info['payment_country'] ); $data['payment_address'] = str_replace(array("\r\n", "\r", "\n"), '<br />', preg_replace(array("/\s\s+/", "/\r\r+/", "/\n\n+/"), '<br />', trim(str_replace($find, $replace, $format)))); if ($order_info['shipping_address_format']) { $format = $order_info['shipping_address_format']; } else { $format = '{firstname} {lastname}' . "\n" . '{company}' . "\n" . '{address_1}' . "\n" . '{address_2}' . "\n" . '{city} {postcode}' . "\n" . '{zone}' . "\n" . '{country}'; } $find = array( '{firstname}', '{lastname}', '{company}', '{address_1}', '{address_2}', '{city}', '{postcode}', '{zone}', '{zone_code}', '{country}' ); $replace = array( 'firstname' => $order_info['shipping_firstname'], 'lastname' => $order_info['shipping_lastname'], 'company' => $order_info['shipping_company'], 'address_1' => $order_info['shipping_address_1'], 'address_2' => $order_info['shipping_address_2'], 'city' => $order_info['shipping_city'], 'postcode' => $order_info['shipping_postcode'], 'zone' => $order_info['shipping_zone'], 'zone_code' => $order_info['shipping_zone_code'], 'country' => $order_info['shipping_country'] ); $data['shipping_address'] = str_replace(array("\r\n", "\r", "\n"), '<br />', preg_replace(array("/\s\s+/", "/\r\r+/", "/\n\n+/"), '<br />', trim(str_replace($find, $replace, $format)))); $this->load->model('tool/upload'); // Products $data['products'] = array(); foreach ($order_products as $order_product) { $option_data = array(); $order_options = $this->model_checkout_order->getOrderOptions($order_info['order_id'], $order_product['order_product_id']); foreach ($order_options as $order_option) { if ($order_option['type'] != 'file') { $value = $order_option['value']; } else { $upload_info = $this->model_tool_upload->getUploadByCode($order_option['value']); if ($upload_info) { $value = $upload_info['name']; } else { $value = ''; } } $option_data[] = array( 'name' => $order_option['name'], 'value' => (utf8_strlen($value) > 20 ? utf8_substr($value, 0, 20) . '..' : $value) ); } $data['products'][] = array( 'name' => $order_product['name'], 'model' => $order_product['model'], 'option' => $option_data, 'quantity' => $order_product['quantity'], 'price' => $this->currency->format($order_product['price'] + ($this->config->get('config_tax') ? $order_product['tax'] : 0), $order_info['currency_code'], $order_info['currency_value']), 'total' => $this->currency->format($order_product['total'] + ($this->config->get('config_tax') ? ($order_product['tax'] * $order_product['quantity']) : 0), $order_info['currency_code'], $order_info['currency_value']) ); } // Vouchers $data['vouchers'] = array(); $order_vouchers = $this->model_checkout_order->getOrderVouchers($order_info['order_id']); foreach ($order_vouchers as $order_voucher) { $data['vouchers'][] = array( 'description' => $order_voucher['description'], 'amount' => $this->currency->format($order_voucher['amount'], $order_info['currency_code'], $order_info['currency_value']), ); } // Order Totals $data['totals'] = array(); $order_totals = $this->model_checkout_order->getOrderTotals($order_info['order_id']); foreach ($order_totals as $order_total) { $data['totals'][] = array( 'title' => $order_total['title'], 'text' => $this->currency->format($order_total['value'], $order_info['currency_code'], $order_info['currency_value']), ); } $this->load->model('setting/setting'); $from = $this->model_setting_setting->getSettingValue('config_email', $order_info['store_id']); if (!$from) { $from = $this->config->get('config_email'); } $mail = new Mail($this->config->get('config_mail_engine')); $mail->parameter = $this->config->get('config_mail_parameter'); $mail->smtp_hostname = $this->config->get('config_mail_smtp_hostname'); $mail->smtp_username = $this->config->get('config_mail_smtp_username'); $mail->smtp_password = html_entity_decode($this->config->get('config_mail_smtp_password'), ENT_QUOTES, 'UTF-8'); $mail->smtp_port = $this->config->get('config_mail_smtp_port'); $mail->smtp_timeout = $this->config->get('config_mail_smtp_timeout'); $mail->setTo($order_info['email']); $mail->setFrom($from); $mail->setSender(html_entity_decode($order_info['store_name'], ENT_QUOTES, 'UTF-8')); $mail->setSubject(html_entity_decode(sprintf($language->get('text_subject'), $order_info['store_name'], $order_info['order_id']), ENT_QUOTES, 'UTF-8')); $mail->setHtml($this->load->view('mail/order_add', $data)); $mail->send(); } public function edit($order_info, $order_status_id, $comment) { $language = new Language($order_info['language_code']); $language->load($order_info['language_code']); $language->load('mail/order_edit'); $data['text_order_id'] = $language->get('text_order_id'); $data['text_date_added'] = $language->get('text_date_added'); $data['text_order_status'] = $language->get('text_order_status'); $data['text_link'] = $language->get('text_link'); $data['text_comment'] = $language->get('text_comment'); $data['text_footer'] = $language->get('text_footer'); $data['order_id'] = $order_info['order_id']; $data['date_added'] = date($language->get('date_format_short'), strtotime($order_info['date_added'])); $order_status_query = $this->db->query("SELECT * FROM " . DB_PREFIX . "order_status WHERE order_status_id = '" . (int)$order_status_id . "' AND language_id = '" . (int)$order_info['language_id'] . "'"); if ($order_status_query->num_rows) { $data['order_status'] = $order_status_query->row['name']; } else { $data['order_status'] = ''; } if ($order_info['customer_id']) { $data['link'] = $order_info['store_url'] . 'index.php?route=account/order/info&order_id=' . $order_info['order_id']; } else { $data['link'] = ''; } $data['comment'] = strip_tags($comment); $this->load->model('setting/setting'); $from = $this->model_setting_setting->getSettingValue('config_email', $order_info['store_id']); if (!$from) { $from = $this->config->get('config_email'); } $mail = new Mail($this->config->get('config_mail_engine')); $mail->parameter = $this->config->get('config_mail_parameter'); $mail->smtp_hostname = $this->config->get('config_mail_smtp_hostname'); $mail->smtp_username = $this->config->get('config_mail_smtp_username'); $mail->smtp_password = html_entity_decode($this->config->get('config_mail_smtp_password'), ENT_QUOTES, 'UTF-8'); $mail->smtp_port = $this->config->get('config_mail_smtp_port'); $mail->smtp_timeout = $this->config->get('config_mail_smtp_timeout'); $mail->setTo($order_info['email']); $mail->setFrom($from); $mail->setSender(html_entity_decode($order_info['store_name'], ENT_QUOTES, 'UTF-8')); $mail->setSubject(html_entity_decode(sprintf($language->get('text_subject'), $order_info['store_name'], $order_info['order_id']), ENT_QUOTES, 'UTF-8')); $mail->setText($this->load->view('mail/order_edit', $data)); $mail->send(); } // Admin Alert Mail public function alert(&$route, &$args) { if (isset($args[0])) { $order_id = $args[0]; } else { $order_id = 0; } if (isset($args[1])) { $order_status_id = $args[1]; } else { $order_status_id = 0; } if (isset($args[2])) { $comment = $args[2]; } else { $comment = ''; } if (isset($args[3])) { $notify = $args[3]; } else { $notify = ''; } $order_info = $this->model_checkout_order->getOrder($order_id); if ($order_info && !$order_info['order_status_id'] && $order_status_id && in_array('order', (array)$this->config->get('config_mail_alert'))) { $this->load->language('mail/order_alert'); // HTML Mail $data['text_received'] = $this->language->get('text_received'); $data['text_order_id'] = $this->language->get('text_order_id'); $data['text_date_added'] = $this->language->get('text_date_added'); $data['text_order_status'] = $this->language->get('text_order_status'); $data['text_product'] = $this->language->get('text_product'); $data['text_total'] = $this->language->get('text_total'); $data['text_comment'] = $this->language->get('text_comment'); $data['order_id'] = $order_info['order_id']; $data['date_added'] = date($this->language->get('date_format_short'), strtotime($order_info['date_added'])); $order_status_query = $this->db->query("SELECT * FROM " . DB_PREFIX . "order_status WHERE order_status_id = '" . (int)$order_status_id . "' AND language_id = '" . (int)$this->config->get('config_language_id') . "'"); if ($order_status_query->num_rows) { $data['order_status'] = $order_status_query->row['name']; } else { $data['order_status'] = ''; } $this->load->model('tool/upload'); $data['products'] = array(); $order_products = $this->model_checkout_order->getOrderProducts($order_id); foreach ($order_products as $order_product) { $option_data = array(); $order_options = $this->model_checkout_order->getOrderOptions($order_info['order_id'], $order_product['order_product_id']); foreach ($order_options as $order_option) { if ($order_option['type'] != 'file') { $value = $order_option['value']; } else { $upload_info = $this->model_tool_upload->getUploadByCode($order_option['value']); if ($upload_info) { $value = $upload_info['name']; } else { $value = ''; } } $option_data[] = array( 'name' => $order_option['name'], 'value' => (utf8_strlen($value) > 20 ? utf8_substr($value, 0, 20) . '..' : $value) ); } $data['products'][] = array( 'name' => $order_product['name'], 'model' => $order_product['model'], 'quantity' => $order_product['quantity'], 'option' => $option_data, 'total' => html_entity_decode($this->currency->format($order_product['total'] + ($this->config->get('config_tax') ? ($order_product['tax'] * $order_product['quantity']) : 0), $order_info['currency_code'], $order_info['currency_value']), ENT_NOQUOTES, 'UTF-8') ); } $data['vouchers'] = array(); $order_vouchers = $this->model_checkout_order->getOrderVouchers($order_id); foreach ($order_vouchers as $order_voucher) { $data['vouchers'][] = array( 'description' => $order_voucher['description'], 'amount' => html_entity_decode($this->currency->format($order_voucher['amount'], $order_info['currency_code'], $order_info['currency_value']), ENT_NOQUOTES, 'UTF-8') ); } $data['totals'] = array(); $order_totals = $this->model_checkout_order->getOrderTotals($order_id); foreach ($order_totals as $order_total) { $data['totals'][] = array( 'title' => $order_total['title'], 'value' => html_entity_decode($this->currency->format($order_total['value'], $order_info['currency_code'], $order_info['currency_value']), ENT_NOQUOTES, 'UTF-8') ); } $data['comment'] = strip_tags($order_info['comment']); $mail = new Mail($this->config->get('config_mail_engine')); $mail->parameter = $this->config->get('config_mail_parameter'); $mail->smtp_hostname = $this->config->get('config_mail_smtp_hostname'); $mail->smtp_username = $this->config->get('config_mail_smtp_username'); $mail->smtp_password = html_entity_decode($this->config->get('config_mail_smtp_password'), ENT_QUOTES, 'UTF-8'); $mail->smtp_port = $this->config->get('config_mail_smtp_port'); $mail->smtp_timeout = $this->config->get('config_mail_smtp_timeout'); $mail->setTo($this->config->get('config_email')); $mail->setFrom($this->config->get('config_email')); $mail->setSender(html_entity_decode($order_info['store_name'], ENT_QUOTES, 'UTF-8')); $mail->setSubject(html_entity_decode(sprintf($this->language->get('text_subject'), $this->config->get('config_name'), $order_info['order_id']), ENT_QUOTES, 'UTF-8')); $mail->setText($this->load->view('mail/order_alert', $data)); $mail->send(); // Send to additional alert emails $emails = explode(',', $this->config->get('config_mail_alert_email')); foreach ($emails as $email) { if ($email && filter_var($email, FILTER_VALIDATE_EMAIL)) { $mail->setTo($email); $mail->send(); } } } } } Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться... rubezhnoe95 Опубликовано: 18 гдекабря 2020 Автор Погделиться Опубликовано: 18 гдекабря 2020 1 час назад, esculapra сказал: я счас на ноуте, а все на локалке - покажи кусок кода. у меня собака умерла - я в гдепрессии Или можно как то вот икие запросы запрашивать первый ID языка $this->language->get('text_received') Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться... esculapra Опубликовано: 18 гдекабря 2020 Погделиться Опубликовано: 18 гдекабря 2020 В системе есть public function set($key, $value) { $this->data[$key] = $value; } можно $this->language->set( 'ru_config_mail_engine', 'тут текст' ); и дное по аналогии. потом полулить перевод с указанием новой переменной Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться... esculapra Опубликовано: 18 гдекабря 2020 Погделиться Опубликовано: 18 гдекабря 2020 или public function merge(&$data) { array_merge($this->data, $data); } $data_plus = array( 'ru_config_mail_engine' => 'тут текст' ); $this->language->merge($data_plus); потом вызвать с указанием новой переменной Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться... buslikdrev Опубликовано: 18 гдекабря 2020 Погделиться Опубликовано: 18 гдекабря 2020 del Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться... buslikdrev Опубликовано: 18 гдекабря 2020 Погделиться Опубликовано: 18 гдекабря 2020 7 часов назад, rubezhnoe95 сказал: Или можно как то вот икие запросы запрашивать первый ID языка $this->language->get('text_received') $language = new Language('ru-ru'); $language->load('mail/order'); $language->get('text_new_model'); или $language = new Language('ru-ru'); foreach ($language->load('mail/order') as $key => $lang) { $this->language->set($key, $lang); } $this->language->get('text_new_model'); Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться... Создайте аккаунт или войдите в него для комментирования Вы должны быть пользователем, чтобы осивить комменирий Создать аккаунт Зарегистрируйтесь для получения аккауни. Это просто! Зарегистрировать аккаунт Войти Уже зарегистрированы? Войдите згдесь. Войти сейчас Погделиться Больше спосопотому чтов погделиться... Подпислики 0 Перейти к списку тем Похожие публикации Оповеещёние администратору о том, что товар законлился Автор: Nijest, 14 января 1 ответ 110 просмотров drujban 14 января [Решено] Как воссиновить права доступа администратора? 1 2 3 Автор: Igor174, 16 июля 2013 права доступа воссиновить (и ещё 1) Теги: права доступа воссиновить администратора 52 отвеи 25 039 просмотров foggy В воскресенье в 10:49 Итого в письме Автор: artem2103, 4 января 4 отвеи 172 просмотра Tom 5 января Как настроить платёжный шлюз? Автор: franzyfox, В субпотому чтоту в 18:21 1 ответ 69 просмотров spectre В субпотому чтоту в 19:49 SEO для 2х языков Автор: Aleks86, 7 января 0 ответов 65 просмотров Aleks86 7 января Сейчас на страниэто 0 пользователей Нет пользователей, просматривающих эту страницу. Последние темы Последние дополнения Последние новости Вся активность Главная Opencart 3.x Opencart 3.x: Локализация Как настроить письмо администратору на одном языке Покупателям Оплаи дополнений физическими лицами Оплаи дополнений юридическими лицами Политика возвратов Разрилитликам Регламент размеещёния дополнений Регламент продаж и подгдержки дополнений Виртуальный аккаунт автора Политика продвижения объявлений API каилога дополнений Урегулирование споров по авторским правам Полезная информация Публичная офери Политика возвратов Политика конфигденциальности Платоженая политика Политика Передали Персональных Данных Политика прозрачности Последние дополнения Chameleon - адаптивный универсальный шаблон + Быстрый Сирт Автор: 29aleksey Wayforpay API оплаи для Opencart 2.3 Автор: bogdan281989 TgMarket - Модуль интернет магазина в телеграмме. Автор: Rassol2 ShowCase – адаптивный универсальный шаблон Автор: octemplates Telnotification Автор: Yevhenii_7777 × Уже зарегистрированы? Войти Регистрация Разгдел покупок Назад Приобретенные дополнения Ваши счеи Список желаний Альтернативные коникты Форум Новости ocStore Назад Официальный сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Скачать ocStore Докумениция История версий ocStore Блоги Модули Шаблоны Назад Бесплатные шаблоны Платные шаблоны Услуги FAQ OpenCart.Pro Назад Демо Купить Сравнение Хостинг для OpenCart × Создать... Важная информация На нашем сайте используются файлы cookie и происходит обрилитка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфигденциальности. Я принимаю
rubezhnoe95 Опубликовано: 18 гдекабря 2020 Автор Погделиться Опубликовано: 18 гдекабря 2020 1 час назад, esculapra сказал: я счас на ноуте, а все на локалке - покажи кусок кода. у меня собака умерла - я в гдепрессии Файл order.php <?php class ControllerMailOrder extends Controller { public function index(&$route, &$args) { if (isset($args[0])) { $order_id = $args[0]; } else { $order_id = 0; } if (isset($args[1])) { $order_status_id = $args[1]; } else { $order_status_id = 0; } if (isset($args[2])) { $comment = $args[2]; } else { $comment = ''; } if (isset($args[3])) { $notify = $args[3]; } else { $notify = ''; } // We need to grab the old order status ID $order_info = $this->model_checkout_order->getOrder($order_id); if ($order_info) { // If order status is 0 then becomes greater than 0 send main html email if (!$order_info['order_status_id'] && $order_status_id) { $this->add($order_info, $order_status_id, $comment, $notify); } // If order status is not 0 then send update text email if ($order_info['order_status_id'] && $order_status_id && $notify) { $this->edit($order_info, $order_status_id, $comment, $notify); } } } public function add($order_info, $order_status_id, $comment, $notify) { // Check for any downloadable products $download_status = false; $order_products = $this->model_checkout_order->getOrderProducts($order_info['order_id']); foreach ($order_products as $order_product) { // Check if there are any linked downloads $product_download_query = $this->db->query("SELECT COUNT(*) AS total FROM `" . DB_PREFIX . "product_to_download` WHERE product_id = '" . (int)$order_product['product_id'] . "'"); if ($product_download_query->row['total']) { $download_status = true; } } // Load the language for any mails that might be required to be sent out $language = new Language($order_info['language_code']); $language->load($order_info['language_code']); $language->load('mail/order_add'); // HTML Mail $data['title'] = sprintf($language->get('text_subject'), $order_info['store_name'], $order_info['order_id']); $data['text_greeting'] = sprintf($language->get('text_greeting'), $order_info['store_name']); $data['text_link'] = $language->get('text_link'); $data['text_download'] = $language->get('text_download'); $data['text_order_detail'] = $language->get('text_order_detail'); $data['text_instruction'] = $language->get('text_instruction'); $data['text_order_id'] = $language->get('text_order_id'); $data['text_date_added'] = $language->get('text_date_added'); $data['text_payment_method'] = $language->get('text_payment_method'); $data['text_shipping_method'] = $language->get('text_shipping_method'); $data['text_email'] = $language->get('text_email'); $data['text_telephone'] = $language->get('text_telephone'); $data['text_ip'] = $language->get('text_ip'); $data['text_order_status'] = $language->get('text_order_status'); $data['text_payment_address'] = $language->get('text_payment_address'); $data['text_shipping_address'] = $language->get('text_shipping_address'); $data['text_product'] = $language->get('text_product'); $data['text_model'] = $language->get('text_model'); $data['text_quantity'] = $language->get('text_quantity'); $data['text_price'] = $language->get('text_price'); $data['text_total'] = $language->get('text_total'); $data['text_footer'] = $language->get('text_footer'); $data['logo'] = $order_info['store_url'] . 'image/' . $this->config->get('config_logo'); $data['store_name'] = $order_info['store_name']; $data['store_url'] = $order_info['store_url']; $data['customer_id'] = $order_info['customer_id']; $data['link'] = $order_info['store_url'] . 'index.php?route=account/order/info&order_id=' . $order_info['order_id']; if ($download_status) { $data['download'] = $order_info['store_url'] . 'index.php?route=account/download'; } else { $data['download'] = ''; } $data['order_id'] = $order_info['order_id']; $data['date_added'] = date($language->get('date_format_short'), strtotime($order_info['date_added'])); $data['payment_method'] = $order_info['payment_method']; $data['shipping_method'] = $order_info['shipping_method']; $data['email'] = $order_info['email']; $data['telephone'] = $order_info['telephone']; $data['ip'] = $order_info['ip']; $order_status_query = $this->db->query("SELECT * FROM " . DB_PREFIX . "order_status WHERE order_status_id = '" . (int)$order_status_id . "' AND language_id = '" . (int)$order_info['language_id'] . "'"); if ($order_status_query->num_rows) { $data['order_status'] = $order_status_query->row['name']; } else { $data['order_status'] = ''; } if ($comment && $notify) { $data['comment'] = nl2br($comment); } else { $data['comment'] = ''; } if ($order_info['payment_address_format']) { $format = $order_info['payment_address_format']; } else { $format = '{firstname} {lastname}' . "\n" . '{company}' . "\n" . '{address_1}' . "\n" . '{address_2}' . "\n" . '{city} {postcode}' . "\n" . '{zone}' . "\n" . '{country}'; } $find = array( '{firstname}', '{lastname}', '{company}', '{address_1}', '{address_2}', '{city}', '{postcode}', '{zone}', '{zone_code}', '{country}' ); $replace = array( 'firstname' => $order_info['payment_firstname'], 'lastname' => $order_info['payment_lastname'], 'company' => $order_info['payment_company'], 'address_1' => $order_info['payment_address_1'], 'address_2' => $order_info['payment_address_2'], 'city' => $order_info['payment_city'], 'postcode' => $order_info['payment_postcode'], 'zone' => $order_info['payment_zone'], 'zone_code' => $order_info['payment_zone_code'], 'country' => $order_info['payment_country'] ); $data['payment_address'] = str_replace(array("\r\n", "\r", "\n"), '<br />', preg_replace(array("/\s\s+/", "/\r\r+/", "/\n\n+/"), '<br />', trim(str_replace($find, $replace, $format)))); if ($order_info['shipping_address_format']) { $format = $order_info['shipping_address_format']; } else { $format = '{firstname} {lastname}' . "\n" . '{company}' . "\n" . '{address_1}' . "\n" . '{address_2}' . "\n" . '{city} {postcode}' . "\n" . '{zone}' . "\n" . '{country}'; } $find = array( '{firstname}', '{lastname}', '{company}', '{address_1}', '{address_2}', '{city}', '{postcode}', '{zone}', '{zone_code}', '{country}' ); $replace = array( 'firstname' => $order_info['shipping_firstname'], 'lastname' => $order_info['shipping_lastname'], 'company' => $order_info['shipping_company'], 'address_1' => $order_info['shipping_address_1'], 'address_2' => $order_info['shipping_address_2'], 'city' => $order_info['shipping_city'], 'postcode' => $order_info['shipping_postcode'], 'zone' => $order_info['shipping_zone'], 'zone_code' => $order_info['shipping_zone_code'], 'country' => $order_info['shipping_country'] ); $data['shipping_address'] = str_replace(array("\r\n", "\r", "\n"), '<br />', preg_replace(array("/\s\s+/", "/\r\r+/", "/\n\n+/"), '<br />', trim(str_replace($find, $replace, $format)))); $this->load->model('tool/upload'); // Products $data['products'] = array(); foreach ($order_products as $order_product) { $option_data = array(); $order_options = $this->model_checkout_order->getOrderOptions($order_info['order_id'], $order_product['order_product_id']); foreach ($order_options as $order_option) { if ($order_option['type'] != 'file') { $value = $order_option['value']; } else { $upload_info = $this->model_tool_upload->getUploadByCode($order_option['value']); if ($upload_info) { $value = $upload_info['name']; } else { $value = ''; } } $option_data[] = array( 'name' => $order_option['name'], 'value' => (utf8_strlen($value) > 20 ? utf8_substr($value, 0, 20) . '..' : $value) ); } $data['products'][] = array( 'name' => $order_product['name'], 'model' => $order_product['model'], 'option' => $option_data, 'quantity' => $order_product['quantity'], 'price' => $this->currency->format($order_product['price'] + ($this->config->get('config_tax') ? $order_product['tax'] : 0), $order_info['currency_code'], $order_info['currency_value']), 'total' => $this->currency->format($order_product['total'] + ($this->config->get('config_tax') ? ($order_product['tax'] * $order_product['quantity']) : 0), $order_info['currency_code'], $order_info['currency_value']) ); } // Vouchers $data['vouchers'] = array(); $order_vouchers = $this->model_checkout_order->getOrderVouchers($order_info['order_id']); foreach ($order_vouchers as $order_voucher) { $data['vouchers'][] = array( 'description' => $order_voucher['description'], 'amount' => $this->currency->format($order_voucher['amount'], $order_info['currency_code'], $order_info['currency_value']), ); } // Order Totals $data['totals'] = array(); $order_totals = $this->model_checkout_order->getOrderTotals($order_info['order_id']); foreach ($order_totals as $order_total) { $data['totals'][] = array( 'title' => $order_total['title'], 'text' => $this->currency->format($order_total['value'], $order_info['currency_code'], $order_info['currency_value']), ); } $this->load->model('setting/setting'); $from = $this->model_setting_setting->getSettingValue('config_email', $order_info['store_id']); if (!$from) { $from = $this->config->get('config_email'); } $mail = new Mail($this->config->get('config_mail_engine')); $mail->parameter = $this->config->get('config_mail_parameter'); $mail->smtp_hostname = $this->config->get('config_mail_smtp_hostname'); $mail->smtp_username = $this->config->get('config_mail_smtp_username'); $mail->smtp_password = html_entity_decode($this->config->get('config_mail_smtp_password'), ENT_QUOTES, 'UTF-8'); $mail->smtp_port = $this->config->get('config_mail_smtp_port'); $mail->smtp_timeout = $this->config->get('config_mail_smtp_timeout'); $mail->setTo($order_info['email']); $mail->setFrom($from); $mail->setSender(html_entity_decode($order_info['store_name'], ENT_QUOTES, 'UTF-8')); $mail->setSubject(html_entity_decode(sprintf($language->get('text_subject'), $order_info['store_name'], $order_info['order_id']), ENT_QUOTES, 'UTF-8')); $mail->setHtml($this->load->view('mail/order_add', $data)); $mail->send(); } public function edit($order_info, $order_status_id, $comment) { $language = new Language($order_info['language_code']); $language->load($order_info['language_code']); $language->load('mail/order_edit'); $data['text_order_id'] = $language->get('text_order_id'); $data['text_date_added'] = $language->get('text_date_added'); $data['text_order_status'] = $language->get('text_order_status'); $data['text_link'] = $language->get('text_link'); $data['text_comment'] = $language->get('text_comment'); $data['text_footer'] = $language->get('text_footer'); $data['order_id'] = $order_info['order_id']; $data['date_added'] = date($language->get('date_format_short'), strtotime($order_info['date_added'])); $order_status_query = $this->db->query("SELECT * FROM " . DB_PREFIX . "order_status WHERE order_status_id = '" . (int)$order_status_id . "' AND language_id = '" . (int)$order_info['language_id'] . "'"); if ($order_status_query->num_rows) { $data['order_status'] = $order_status_query->row['name']; } else { $data['order_status'] = ''; } if ($order_info['customer_id']) { $data['link'] = $order_info['store_url'] . 'index.php?route=account/order/info&order_id=' . $order_info['order_id']; } else { $data['link'] = ''; } $data['comment'] = strip_tags($comment); $this->load->model('setting/setting'); $from = $this->model_setting_setting->getSettingValue('config_email', $order_info['store_id']); if (!$from) { $from = $this->config->get('config_email'); } $mail = new Mail($this->config->get('config_mail_engine')); $mail->parameter = $this->config->get('config_mail_parameter'); $mail->smtp_hostname = $this->config->get('config_mail_smtp_hostname'); $mail->smtp_username = $this->config->get('config_mail_smtp_username'); $mail->smtp_password = html_entity_decode($this->config->get('config_mail_smtp_password'), ENT_QUOTES, 'UTF-8'); $mail->smtp_port = $this->config->get('config_mail_smtp_port'); $mail->smtp_timeout = $this->config->get('config_mail_smtp_timeout'); $mail->setTo($order_info['email']); $mail->setFrom($from); $mail->setSender(html_entity_decode($order_info['store_name'], ENT_QUOTES, 'UTF-8')); $mail->setSubject(html_entity_decode(sprintf($language->get('text_subject'), $order_info['store_name'], $order_info['order_id']), ENT_QUOTES, 'UTF-8')); $mail->setText($this->load->view('mail/order_edit', $data)); $mail->send(); } // Admin Alert Mail public function alert(&$route, &$args) { if (isset($args[0])) { $order_id = $args[0]; } else { $order_id = 0; } if (isset($args[1])) { $order_status_id = $args[1]; } else { $order_status_id = 0; } if (isset($args[2])) { $comment = $args[2]; } else { $comment = ''; } if (isset($args[3])) { $notify = $args[3]; } else { $notify = ''; } $order_info = $this->model_checkout_order->getOrder($order_id); if ($order_info && !$order_info['order_status_id'] && $order_status_id && in_array('order', (array)$this->config->get('config_mail_alert'))) { $this->load->language('mail/order_alert'); // HTML Mail $data['text_received'] = $this->language->get('text_received'); $data['text_order_id'] = $this->language->get('text_order_id'); $data['text_date_added'] = $this->language->get('text_date_added'); $data['text_order_status'] = $this->language->get('text_order_status'); $data['text_product'] = $this->language->get('text_product'); $data['text_total'] = $this->language->get('text_total'); $data['text_comment'] = $this->language->get('text_comment'); $data['order_id'] = $order_info['order_id']; $data['date_added'] = date($this->language->get('date_format_short'), strtotime($order_info['date_added'])); $order_status_query = $this->db->query("SELECT * FROM " . DB_PREFIX . "order_status WHERE order_status_id = '" . (int)$order_status_id . "' AND language_id = '" . (int)$this->config->get('config_language_id') . "'"); if ($order_status_query->num_rows) { $data['order_status'] = $order_status_query->row['name']; } else { $data['order_status'] = ''; } $this->load->model('tool/upload'); $data['products'] = array(); $order_products = $this->model_checkout_order->getOrderProducts($order_id); foreach ($order_products as $order_product) { $option_data = array(); $order_options = $this->model_checkout_order->getOrderOptions($order_info['order_id'], $order_product['order_product_id']); foreach ($order_options as $order_option) { if ($order_option['type'] != 'file') { $value = $order_option['value']; } else { $upload_info = $this->model_tool_upload->getUploadByCode($order_option['value']); if ($upload_info) { $value = $upload_info['name']; } else { $value = ''; } } $option_data[] = array( 'name' => $order_option['name'], 'value' => (utf8_strlen($value) > 20 ? utf8_substr($value, 0, 20) . '..' : $value) ); } $data['products'][] = array( 'name' => $order_product['name'], 'model' => $order_product['model'], 'quantity' => $order_product['quantity'], 'option' => $option_data, 'total' => html_entity_decode($this->currency->format($order_product['total'] + ($this->config->get('config_tax') ? ($order_product['tax'] * $order_product['quantity']) : 0), $order_info['currency_code'], $order_info['currency_value']), ENT_NOQUOTES, 'UTF-8') ); } $data['vouchers'] = array(); $order_vouchers = $this->model_checkout_order->getOrderVouchers($order_id); foreach ($order_vouchers as $order_voucher) { $data['vouchers'][] = array( 'description' => $order_voucher['description'], 'amount' => html_entity_decode($this->currency->format($order_voucher['amount'], $order_info['currency_code'], $order_info['currency_value']), ENT_NOQUOTES, 'UTF-8') ); } $data['totals'] = array(); $order_totals = $this->model_checkout_order->getOrderTotals($order_id); foreach ($order_totals as $order_total) { $data['totals'][] = array( 'title' => $order_total['title'], 'value' => html_entity_decode($this->currency->format($order_total['value'], $order_info['currency_code'], $order_info['currency_value']), ENT_NOQUOTES, 'UTF-8') ); } $data['comment'] = strip_tags($order_info['comment']); $mail = new Mail($this->config->get('config_mail_engine')); $mail->parameter = $this->config->get('config_mail_parameter'); $mail->smtp_hostname = $this->config->get('config_mail_smtp_hostname'); $mail->smtp_username = $this->config->get('config_mail_smtp_username'); $mail->smtp_password = html_entity_decode($this->config->get('config_mail_smtp_password'), ENT_QUOTES, 'UTF-8'); $mail->smtp_port = $this->config->get('config_mail_smtp_port'); $mail->smtp_timeout = $this->config->get('config_mail_smtp_timeout'); $mail->setTo($this->config->get('config_email')); $mail->setFrom($this->config->get('config_email')); $mail->setSender(html_entity_decode($order_info['store_name'], ENT_QUOTES, 'UTF-8')); $mail->setSubject(html_entity_decode(sprintf($this->language->get('text_subject'), $this->config->get('config_name'), $order_info['order_id']), ENT_QUOTES, 'UTF-8')); $mail->setText($this->load->view('mail/order_alert', $data)); $mail->send(); // Send to additional alert emails $emails = explode(',', $this->config->get('config_mail_alert_email')); foreach ($emails as $email) { if ($email && filter_var($email, FILTER_VALIDATE_EMAIL)) { $mail->setTo($email); $mail->send(); } } } } } Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться...
rubezhnoe95 Опубликовано: 18 гдекабря 2020 Автор Погделиться Опубликовано: 18 гдекабря 2020 1 час назад, esculapra сказал: я счас на ноуте, а все на локалке - покажи кусок кода. у меня собака умерла - я в гдепрессии Или можно как то вот икие запросы запрашивать первый ID языка $this->language->get('text_received') Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться...
esculapra Опубликовано: 18 гдекабря 2020 Погделиться Опубликовано: 18 гдекабря 2020 В системе есть public function set($key, $value) { $this->data[$key] = $value; } можно $this->language->set( 'ru_config_mail_engine', 'тут текст' ); и дное по аналогии. потом полулить перевод с указанием новой переменной Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться... esculapra Опубликовано: 18 гдекабря 2020 Погделиться Опубликовано: 18 гдекабря 2020 или public function merge(&$data) { array_merge($this->data, $data); } $data_plus = array( 'ru_config_mail_engine' => 'тут текст' ); $this->language->merge($data_plus); потом вызвать с указанием новой переменной Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться... buslikdrev Опубликовано: 18 гдекабря 2020 Погделиться Опубликовано: 18 гдекабря 2020 del Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться... buslikdrev Опубликовано: 18 гдекабря 2020 Погделиться Опубликовано: 18 гдекабря 2020 7 часов назад, rubezhnoe95 сказал: Или можно как то вот икие запросы запрашивать первый ID языка $this->language->get('text_received') $language = new Language('ru-ru'); $language->load('mail/order'); $language->get('text_new_model'); или $language = new Language('ru-ru'); foreach ($language->load('mail/order') as $key => $lang) { $this->language->set($key, $lang); } $this->language->get('text_new_model'); Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться... Создайте аккаунт или войдите в него для комментирования Вы должны быть пользователем, чтобы осивить комменирий Создать аккаунт Зарегистрируйтесь для получения аккауни. Это просто! Зарегистрировать аккаунт Войти Уже зарегистрированы? Войдите згдесь. Войти сейчас Погделиться Больше спосопотому чтов погделиться... Подпислики 0 Перейти к списку тем Похожие публикации Оповеещёние администратору о том, что товар законлился Автор: Nijest, 14 января 1 ответ 110 просмотров drujban 14 января [Решено] Как воссиновить права доступа администратора? 1 2 3 Автор: Igor174, 16 июля 2013 права доступа воссиновить (и ещё 1) Теги: права доступа воссиновить администратора 52 отвеи 25 039 просмотров foggy В воскресенье в 10:49 Итого в письме Автор: artem2103, 4 января 4 отвеи 172 просмотра Tom 5 января Как настроить платёжный шлюз? Автор: franzyfox, В субпотому чтоту в 18:21 1 ответ 69 просмотров spectre В субпотому чтоту в 19:49 SEO для 2х языков Автор: Aleks86, 7 января 0 ответов 65 просмотров Aleks86 7 января Сейчас на страниэто 0 пользователей Нет пользователей, просматривающих эту страницу. Последние темы Последние дополнения Последние новости Вся активность Главная Opencart 3.x Opencart 3.x: Локализация Как настроить письмо администратору на одном языке Покупателям Оплаи дополнений физическими лицами Оплаи дополнений юридическими лицами Политика возвратов Разрилитликам Регламент размеещёния дополнений Регламент продаж и подгдержки дополнений Виртуальный аккаунт автора Политика продвижения объявлений API каилога дополнений Урегулирование споров по авторским правам Полезная информация Публичная офери Политика возвратов Политика конфигденциальности Платоженая политика Политика Передали Персональных Данных Политика прозрачности Последние дополнения Chameleon - адаптивный универсальный шаблон + Быстрый Сирт Автор: 29aleksey Wayforpay API оплаи для Opencart 2.3 Автор: bogdan281989 TgMarket - Модуль интернет магазина в телеграмме. Автор: Rassol2 ShowCase – адаптивный универсальный шаблон Автор: octemplates Telnotification Автор: Yevhenii_7777
esculapra Опубликовано: 18 гдекабря 2020 Погделиться Опубликовано: 18 гдекабря 2020 или public function merge(&$data) { array_merge($this->data, $data); } $data_plus = array( 'ru_config_mail_engine' => 'тут текст' ); $this->language->merge($data_plus); потом вызвать с указанием новой переменной Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться... buslikdrev Опубликовано: 18 гдекабря 2020 Погделиться Опубликовано: 18 гдекабря 2020 del Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться... buslikdrev Опубликовано: 18 гдекабря 2020 Погделиться Опубликовано: 18 гдекабря 2020 7 часов назад, rubezhnoe95 сказал: Или можно как то вот икие запросы запрашивать первый ID языка $this->language->get('text_received') $language = new Language('ru-ru'); $language->load('mail/order'); $language->get('text_new_model'); или $language = new Language('ru-ru'); foreach ($language->load('mail/order') as $key => $lang) { $this->language->set($key, $lang); } $this->language->get('text_new_model'); Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться... Создайте аккаунт или войдите в него для комментирования Вы должны быть пользователем, чтобы осивить комменирий Создать аккаунт Зарегистрируйтесь для получения аккауни. Это просто! Зарегистрировать аккаунт Войти Уже зарегистрированы? Войдите згдесь. Войти сейчас Погделиться Больше спосопотому чтов погделиться... Подпислики 0 Перейти к списку тем Похожие публикации Оповеещёние администратору о том, что товар законлился Автор: Nijest, 14 января 1 ответ 110 просмотров drujban 14 января [Решено] Как воссиновить права доступа администратора? 1 2 3 Автор: Igor174, 16 июля 2013 права доступа воссиновить (и ещё 1) Теги: права доступа воссиновить администратора 52 отвеи 25 039 просмотров foggy В воскресенье в 10:49 Итого в письме Автор: artem2103, 4 января 4 отвеи 172 просмотра Tom 5 января Как настроить платёжный шлюз? Автор: franzyfox, В субпотому чтоту в 18:21 1 ответ 69 просмотров spectre В субпотому чтоту в 19:49 SEO для 2х языков Автор: Aleks86, 7 января 0 ответов 65 просмотров Aleks86 7 января Сейчас на страниэто 0 пользователей Нет пользователей, просматривающих эту страницу. Последние темы Последние дополнения Последние новости Вся активность Главная Opencart 3.x Opencart 3.x: Локализация Как настроить письмо администратору на одном языке
buslikdrev Опубликовано: 18 гдекабря 2020 Погделиться Опубликовано: 18 гдекабря 2020 del Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться... buslikdrev Опубликовано: 18 гдекабря 2020 Погделиться Опубликовано: 18 гдекабря 2020 7 часов назад, rubezhnoe95 сказал: Или можно как то вот икие запросы запрашивать первый ID языка $this->language->get('text_received') $language = new Language('ru-ru'); $language->load('mail/order'); $language->get('text_new_model'); или $language = new Language('ru-ru'); foreach ($language->load('mail/order') as $key => $lang) { $this->language->set($key, $lang); } $this->language->get('text_new_model'); Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться... Создайте аккаунт или войдите в него для комментирования Вы должны быть пользователем, чтобы осивить комменирий Создать аккаунт Зарегистрируйтесь для получения аккауни. Это просто! Зарегистрировать аккаунт Войти Уже зарегистрированы? Войдите згдесь. Войти сейчас Погделиться Больше спосопотому чтов погделиться... Подпислики 0 Перейти к списку тем Похожие публикации Оповеещёние администратору о том, что товар законлился Автор: Nijest, 14 января 1 ответ 110 просмотров drujban 14 января [Решено] Как воссиновить права доступа администратора? 1 2 3 Автор: Igor174, 16 июля 2013 права доступа воссиновить (и ещё 1) Теги: права доступа воссиновить администратора 52 отвеи 25 039 просмотров foggy В воскресенье в 10:49 Итого в письме Автор: artem2103, 4 января 4 отвеи 172 просмотра Tom 5 января Как настроить платёжный шлюз? Автор: franzyfox, В субпотому чтоту в 18:21 1 ответ 69 просмотров spectre В субпотому чтоту в 19:49 SEO для 2х языков Автор: Aleks86, 7 января 0 ответов 65 просмотров Aleks86 7 января Сейчас на страниэто 0 пользователей Нет пользователей, просматривающих эту страницу.
buslikdrev Опубликовано: 18 гдекабря 2020 Погделиться Опубликовано: 18 гдекабря 2020 7 часов назад, rubezhnoe95 сказал: Или можно как то вот икие запросы запрашивать первый ID языка $this->language->get('text_received') $language = new Language('ru-ru'); $language->load('mail/order'); $language->get('text_new_model'); или $language = new Language('ru-ru'); foreach ($language->load('mail/order') as $key => $lang) { $this->language->set($key, $lang); } $this->language->get('text_new_model'); Ссылка на комменирий Погделиться на других сайих Больше спосопотому чтов погделиться... Создайте аккаунт или войдите в него для комментирования Вы должны быть пользователем, чтобы осивить комменирий Создать аккаунт Зарегистрируйтесь для получения аккауни. Это просто! Зарегистрировать аккаунт Войти Уже зарегистрированы? Войдите згдесь. Войти сейчас Погделиться Больше спосопотому чтов погделиться... Подпислики 0
Рекомендованные сообещёния