Jump to content
Search In
  • More options...
Find results that contain...
Find results in...

Xelen

Users
  • Posts

    303
  • Joined

  • Last visited

Everything posted by Xelen

  1. может, проще брать значение lang из тега html через js var language = document.getElementsByTagName("html")[0].getAttribute("lang"); if (language =='en') { $('div[id="top-modules"]').before('англ'); } if (language =='ru') { $('div[id="top-modules"]').before('рус'); } div id свой поставить
  2. удалите в папке system/storage/modification все папки , кеш модификаторов скинется
  3. А как очищать сессии из БД? Там месяцами накапливаются мегабайты истекших сессий Это как-то удаляется через Опенкарт? Я вижу в файле system/library/session/db.php код public function destroy($session_id) { $this->db->query("DELETE FROM `" . DB_PREFIX . "session` WHERE session_id = '" . $this->db->escape($session_id) . "'"); return true; } только не могу понять, что его запускает? Есть какая-то кнопка? настройка session.gc_maxlifetime = 3600; И то же самое, если сессии переключить на файл public function destroy($session_id) { $file = DIR_SESSION . '/sess_' . basename($session_id); if (is_file($file)) { unset($file); } }
  4. у меня модуль доставки обнулял сессию из-за слишком большого объема данных. В этом модуле передается список адресов поставщика услуги доставки. сначала перевели сессии на файл, но потом я решила увеличить размер поля в БД Размер поля в БД я увеличила, все работает. Но мне было любопытно, что так забивает сессию, я заглянула в файл иу видела, что помимо данных адресов поставщика, вот таких <option value="omniva.omniva_9946">адрес</option> <option value="omniva.omniva_9902">адрес1</option> <option value="omniva.omniva_9884">адрес2</option> там в конце в поле сессии , где эти адреса, ещё и передается целый скрипт, который прописан в файле модели каталога. этот скрипт отвечает за работу селекта. Я без понятия, должен ли передаваться в сессию Js код? Это корректно?
  5. может кто подскажет, в файле или таблице сессий вообще должен храниться скрипт из модели, помимо самой информации из селекта адресов доставки?
  6. дело оказалось не в конфликте скриптов. Там у него способ доставки передает пустое значение отображаясь, в селекте выбора адресов нет даже дефолтного значения -выберите- ( интересно,это может быть причиной сброса сессии?) а скрипт перезагрузки просто показывает то, что уже произошло.
  7. да мне самой все это не нравится. Но вариантов нет особо по этому вопросу. на стандартном чекауте опенкарт он ничего не сбрасывает, а в симпле именно скрипт перезагрузки полей + этот модуль . вырубают сессию. так понимаю, конфликт скриптов. может есть какой-то вариант заставить скрипты не конфликтовать? не возвращаться же мне к станадартному чекауту)
  8. Хочу посоветоваться со спецами) Купила на opencart.com один модуль я, для доставки. И он конфликтует с симплой, при перезагрузке полей сбрасывается сессия на сайте и в админке. Разработчик того модуля предложил мне решение прописать в в файлах system/config/catalog.php и system/config/admin.php в конце следующую строчку: $_['session_engine'] = 'file'; Вроде теперь не сбрасывает сессии, все работает. Но есть сомнения насчет того, не повлияет ли это на что-либо ещё. Насколько корректно такое решение вопроса?
  9. Это все указано. Но опенкарт вычитает товар со склада только при совершении покупки. А мне надо, чтобы при добавлении товара в корзину больше, чем есть на складе (например 3 шт. есть, а покупатель добавляет 5шт.), добавлялось только 3, с сообщением, что на складе только 3 единицы. А сейчас добавляются все 5, висит предупреждение в корзине, что товар нет на складе в таком количестве, пользователь, конечно, предупреждение не видит, заполняет все поля чекаута, а купить ему не дает. Потом он жалуется, что у него ничего не получается. Перед этим магазин был на Джумле- Виртуемарт, вот там именно так было, что не давало добавить в корзину больше, чем есть. Всплывало сообщение и в крозину добавлялось ровно столько сколько есть в стоке.
  10. Как реализовать, чтобы при наличии товара, например 3 шт., покупатель не мог добавить больше, а добавлялось только 3 штуки с сообщением, что На складе только 3 шт? Есть модули может какие или дописать что в коде можно?
  11. сбросьте кеш модификаторов. проверьте, может в css задан размер картинок опций. Этот код, который выше меняет только размер генерации картинок откройте любую картинку правой кнопкой мыши, должна быть 150 на 150
  12. по фтп вы ничего не скопируете из папки в папку. через Bash по ssh доступу можно команды копирования или распаковки архивов использовать
  13. Решается выделением файлов и папаок и нажатием кнопки Копировать с указанием места копирования. Интерфейс может отличаться, он зависит от типа панели хостинга.
  14. подключением модального окна есть готовые бесплатные решения, как это https://www.opencart.com/index.php?route=marketplace/extension/info&member_token=eCDokWRshX3A3SHEebqngC3f5uvTcGII&extension_id=21813 но я, если честно, не проверяла. под разные темы, похоже, его надо адпатировать
  15. в catalog/controller/product/product.php можно увеличить размер картинки вот здесь 'image' => $this->model_tool_image->resize($option_value['image'], 50, 50), заменить, например, на 'image' => $this->model_tool_image->resize($option_value['image'], 150, 150),
  16. определение языка на основании языка браузера есть в Opencart 2 в файле catalog/controller/startup/startup.php этот код отвечает за определение языка. если язык браузера иной, чем дефолтный, и он есть в языках магазина, то сайт откроется именно на языке браузера // Language Detection if (!empty($this->request->server['HTTP_ACCEPT_LANGUAGE']) && !array_key_exists($code, $languages)) { $detect = ''; $browser_languages = explode(',', $this->request->server['HTTP_ACCEPT_LANGUAGE']); // Try using local to detect the language foreach ($browser_languages as $browser_language) { foreach ($languages as $key => $value) { if ($value['status']) { $locale = explode(',', $value['locale']); if (in_array($browser_language, $locale)) { $detect = $key; break 2; } } } } if (!$detect) { // Try using language folder to detect the language foreach ($browser_languages as $browser_language) { if (array_key_exists(strtolower($browser_language), $languages)) { $detect = strtolower($browser_language); break; } } } $code = $detect ? $detect : ''; } вот тут обсуждалось https://opencartforum.com/topic/78152-yazyk-po-umolchaniyu-opencart-2302
  17. почему не устраивает? конкретика и требуется. смотрю, они сделали окно про куки просто уведомительное, без выбора согласиться или нет. Наверное, на этом пока и остановлюсь. А политику все равно формировать надо конкретно под сайт, в зависимости от используемых форм и сервисов. Насчет магазина в зоне RU, в статье на хабре вроде критерии есть то есть,эти организации изначально ориентированны на международность, и им придется соответствовать, там и персональные данные серьезнее обычных, часто требуется номер паспорта. А ваш знакомый с раритетами не позиционирует себя, как международник, я думаю, не его забота, кто там к нему на сайт ходит. Никто трясти его не будет в России из-за границы.
  18. это, чтобы, когда клиент покупает много единиц товара, VAT высчитывался точно. 4 знака только в админке, вывод настроен с округлением до 2 проблема была, что при выдаче пейпалу товаров списком, цены у каждого товара округлялись, а потом складывались, что делало конечную сумму больше. В гугле много жалуются на это по запросу Paypal rounding error В общем, я снесла вывод товаров по одному, закомментировала все, что в foreach и заменила $total = $this->currency->format($order_info['total'] - $this->cart->getSubTotal(), $order_info['currency_code'], false, false); на $total = $this->currency->format($order_info['total'], $order_info['currency_code'], false, false); Теперь выводит просто общую сумму, зато правильно. Может, кому пригодится, хотя лучше оставлять список (но в данном случае просили убрать и его)
  19. я про другое сообщение, там смысл в том, что они предупреждают, что мы храним ваши куки, а там вся инфа о браузере, ОС, и вдруг человек не готов так близко с нами познакомиться, и тогда он может отказаться от передачи куки серверу. Или это одно и то же?
  20. с этим тоже согласна Но они у себя на одном из инфосайтов поставили окно с куками и возможность отказаться оставить свою куку. Типа человек должен иметь возможность. Но будет предупрежден, что сайт может не работать. Вот это меня настораживает. И непонятно, насколько этот момент принципиален.
  21. ого. а насчет всплывающего окна We use cookie... - этот функционал обязателен? и надо ли давать возможностью пользователю отказаться использовать куки? или просто информационное поле с крестиком или кнопкой ОК?
  22. какие подробности писать я должна была захотеть? тех, что написала, вполне хватает для ответа по существу. Ну, а если начинать строить предположения, то конечно, подробностей нужно больше. И что вы пишете для всех? Что GDPR не для россиян, украинцев или казахов? так это уже было написано. Тема вообще о том, что делать тем, кто попадает под эту регулу.
  23. да откуда вы это берете, что я из Украины или России, и сайты не для ЕС. Я вопрос задала выше, уже подразумевая, что я работаю в правовом поле ЕС, ну и живу там же, что не суть, потому что вопрос этот волнует мою клиентуру. Скопировать пробуем, но "любой европейский магазин" может делать все так же от балды, и у всех поэтому по-разному, где-то всплывает эта *** про куки, где-то нет. Где-то надо просто нажать ОК, а где-то можно отказаться от использования кук. Мне кажется, разработчики в этом вопросе могут быть более подкованы, и уже есть какая-то болванка по этому вопросу.
  24. вообще,хорошо было бы, чтобы сайт не передавал на пейпал список товаров, налог и доставку отдельно, а передавал только общую сумму насколько я поняла, это задается здесь catalog/controller/extension/payment/pp_standard.php и информация о заказе берется из сессии, пкока заказ не сформирован $this->load->model('checkout/order'); $order_info = $this->model_checkout_order->getOrder($this->session->data['order_id']); if ($order_info) { $data['business'] = $this->config->get('payment_pp_standard_email'); $data['item_name'] = html_entity_decode($this->config->get('config_name'), ENT_QUOTES, 'UTF-8'); $data['products'] = array(); foreach ($this->cart->getProducts() as $product) { $option_data = array(); foreach ($product['option'] as $option) { if ($option['type'] != 'file') { $value = $option['value']; } else { $upload_info = $this->model_tool_upload->getUploadByCode($option['value']); if ($upload_info) { $value = $upload_info['name']; } else { $value = ''; } } $option_data[] = array( 'name' => $option['name'], 'value' => (utf8_strlen($value) > 20 ? utf8_substr($value, 0, 20) . '..' : $value) ); } $data['products'][] = array( 'name' => htmlspecialchars($product['name']), 'model' => htmlspecialchars($product['model']), 'price' => $this->currency->format($product['price'], $order_info['currency_code'], false, false), 'quantity' => $product['quantity'], 'option' => $option_data, 'weight' => $product['weight'] ); } $data['discount_amount_cart'] = 0; $total = $this->currency->format($order_info['total'] - $this->cart->getSubTotal(), $order_info['currency_code'], false, false); if ($total > 0) { $data['products'][] = array( 'name' => $this->language->get('text_total'), 'model' => '', 'price' => $total, 'quantity' => 1, 'option' => array(), 'weight' => 0 ); } else { $data['discount_amount_cart'] -= $total; } можно ли убрать вывод всех этих товаров, налога, доставки, а отдавать пейпелу только общую сумму? это бы решило проблему с округлением.
×
×
  • Create New...

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.