bzserg
Пользователи-
Публикаций
117 -
Зарегистрирован
-
Посещение
Информация
-
Город:
Київ
-
Интересы
Доброго вечора, ми з України!
Посетители профиля
Блок последних посетителей выключен и не отображается другим пользователям.
Достижения bzserg
-
ocStore 3.0.4.1 - Модифікований OpenCart
bzserg ответил в теме пользователя dinox в Новости и анонсы
не знаю, тому і питаю. модулі, шалони і..т.д -
ocStore 3.0.4.1 - Модифікований OpenCart
bzserg ответил в теме пользователя dinox в Новости и анонсы
чи є сенс робити новий сайт на ocStore 3.0.4.1?? У кого був досвід, чи є проблеми?? -
ocStore 3.0.4.1 - Модифікований OpenCart
bzserg ответил в теме пользователя dinox в Новости и анонсы
7.4 -
ocStore 3.0.4.1 - Модифікований OpenCart
bzserg ответил в теме пользователя dinox в Новости и анонсы
я думав про підтримку рнр 8, тільки по цій причини думав про оновлення. -
ocStore 3.0.4.1 - Модифікований OpenCart
bzserg ответил в теме пользователя dinox в Новости и анонсы
як правильно зробити оновлення с 3.0.3.7 до ocStore 3.0.4.1 ?? -
мы рекомендуем [Поддержка] Блог-новости
bzserg ответил в теме пользователя OCdevWizard в Модули и дополнения
Підкажіть таке питання Опис для категорії стоїть обмеження на 5000 символів. Якщо додати більше буде ось таке повідомлення "Це поле має бути між 1 і 5000 символами!" проблема в тому, що текст в разом з пробеломи 4155 і більше не дає додати. Як це виправити та який код відповідає за перевірку на наявність символів? ось цей код не працює якщо змінити 5000 наприклад на 6000 чи більше все одно додати опис на категорію де більше 5000 символів не виходить Дякую- 165 ответов
-
- ocdevwizard
- blog
- (і ще 17)
-
bzserg подписался на підтримка мови RTL , Шукаю модуль Sidebar menu и Робота с опціями
-
Потрібен модуль Sidebar menu, щоб можно було створити власні пункти меню кастомні лінки та вивести їх в Sidebar через макет підтримка 2 мов та декілька рівнів пунктів меню підкажіть будь ласка такий модуль дякую
-
bestseller UltraStore - адаптивний універсальний шаблон [Поддержка]
bzserg ответил в теме пользователя octemplates в Платные шаблоны
нещодавно зіткнувся з проблемою, сайт атакував бот і відправляв десятки запитів за хвилину через Модуль замовити дзвінок У налаштуваннях на жаль немає можливості поставити на цю форму капчу. Підкажіть хтось займався проблемою захисту цією формою, якщо так, як ви це зробили Поділіться, будь ласка, інформацією як вирішити проблему. дякую- 1 228 ответов
-
- новинка
- octemplates
-
(і ще 1)
Теги:
-
Всім привіт Потрібен модуль який працює з опціями Стандартний функционал якщо я додаю якусь опцію до товару і цина її наприклад 100 грн то при замовлені товара наприклад 20 одиниць, опція буде коштувати 2000 грн, тобто 1 товар 1 опція А мені потрібно зробити так щоб опція коштувала фіксовано в не залежності від того скільки було куплено одиниць товару. Підкажіть кто знає чи є такий модуль, та як це зробити. Дякую
-
Підкажіть чи шаблони тут на форумі які підтримують мови RTL потрібно буде зробити сайт на 2-х мовах, де треба щоб була підтримка мови RTL дякую
-
Лист для замовника так блок Інструкції
bzserg ответил в теме пользователя bzserg в Opencart 3.x: Общие вопросы
Получилось, спасибо. -
Лист для замовника так блок Інструкції
bzserg ответил в теме пользователя bzserg в Opencart 3.x: Общие вопросы
пробую, но не выход, делаю не то что нужно. я добавлял переменные $data['text_order_detail'] = $language->get('text_order_detail'); $data['text_instruction'] = $language->get('text_instruction'); также if ($comment && $notify) { $data['comment'] = nl2br($comment); } else { $data['comment'] = ''; } но ничего не работает думаю что нужно часть из этого кода 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_instruction'] = $language->get('text_instruction'); $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, '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' => 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'), 'href' => $this->url->link('product/product', 'product_id=' . $order_product['product_id']) ); } $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'], 'text' => $this->currency->format($order_total['value'], $order_info['currency_code'], $order_info['currency_value']), '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->setHTML($this->load->view('mail/order_add', $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(); } } } продублировать но не весь в блок функции письма для пользователя -
Лист для замовника так блок Інструкції
bzserg ответил в теме пользователя bzserg в Opencart 3.x: Общие вопросы
а по подробнее можно пожалуйста я не силён в рнр -
Лист для замовника так блок Інструкції
bzserg ответил в теме пользователя bzserg в Opencart 3.x: Общие вопросы
я так зрозумів що очі функція листа користувача 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']), 'href' => $this->url->link('product/product', 'product_id=' . $order_product['product_id']), ); } // 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(); } але не розумію що підправити щоб в листі користувача були коментарі змінні які за це відповыдають э -
Лист для замовника так блок Інструкції
bzserg ответил в теме пользователя bzserg в Opencart 3.x: Общие вопросы
строка яка відповідає за відображення коментарів в блоці інформація є $data['text_instruction'] = $language->get('text_instruction'); в обох файлах, але не можу знайти частину коду яка виводить цей блок тільки для листа адміна Я так зрозумів треба $data['text_instruction'] = $language->get('text_instruction'); додати в блок листа для користувача