Jump to content
zeyser

[Решено] Как подменить валюту "по умолчанию" на сайте не меняя его в админке?

Recommended Posts

К примеру цены "по умолчанию" стоят в евро, стоит курс где за 1 евро дают ***. Как при первом заходе на сайт отображать цены не в евро? При этом посетителю нужно оставить возможность переключится на евро в дальнейшей работе. 

Opencacart 2.0

 

 

Share this post


Link to post
Share on other sites

\system\library\currency.php

		if (isset($this->request->get['currency']) && (array_key_exists($this->request->get['currency'], $this->currencies))) {
			$this->set($this->request->get['currency']);
		} elseif ((isset($this->session->data['currency'])) && (array_key_exists($this->session->data['currency'], $this->currencies))) {
			$this->set($this->session->data['currency']);
		} elseif ((isset($this->request->cookie['currency'])) && (array_key_exists($this->request->cookie['currency'], $this->currencies))) {
			$this->set($this->request->cookie['currency']);
		} else {
			$this->set($this->config->get('config_currency'));
		}

прибить сюда свою логику

Share this post


Link to post
Share on other sites

get['currency'] - что это за 'currency' не могу понять... Мы вот тут проверяем прошел ли запрос get-ом на name='currency'? Подскажите, пожалуйста! Или просто поясните, что делает кусок вашего кода в конструкторе.

Share this post


Link to post
Share on other sites

да, $this->request->get это аналог $_GET

Edited by nikifalex

Share this post


Link to post
Share on other sites

да, $this->request->get это аналог $_GET

Поправьте меня, если я неправ. Мы проверяем был ли запрос на 'currency' и если он был то мы кидаем по всюду его значение. Как я понимаю там наш код валюты фигурирует(EUR,RUB). Тоесть он уже там. И если мы первый раз заходим на сайт, то в currency EUR будет? 

Share this post


Link to post
Share on other sites

да

$this->config->get('config_currency')

валюта по умолчанию из настроек

Share this post


Link to post
Share on other sites

да

$this->config->get('config_currency')

валюта по умолчанию из настроек

Супер! То, что доктор прописал! 

Вот, что получилось:

		if (isset($this->request->get['currency']) && (array_key_exists($this->request->get['currency'], $this->currencies))) {
			$this->set($this->request->get['currency']);
		} elseif ((isset($this->session->data['currency'])) && (array_key_exists($this->session->data['currency'], $this->currencies))) {
			$this->set($this->session->data['currency']);
		} elseif ((isset($this->request->cookie['currency'])) && (array_key_exists($this->request->cookie['currency'], $this->currencies))) {
			$this->set($this->request->cookie['currency']);
		} else {
			$this->set('UAH');
		}
	}

Такой быдлокод, как ни странно, принес результат как и требовалось. Может можно что-то лучше придумать?

nikifalex, большое спасибо!  

  • +1 1

Share this post


Link to post
Share on other sites

лучше это сделать еще одну

есть валюта по умолчанию

и добавить типа

валюта типа еще одна.

 

делов на полчаса так то.

 

Искать и делать копипаст по слову config_currency прямо в проекте

Share this post


Link to post
Share on other sites

Не понял. Если не составит труда, напишите более развернуто.

Share this post


Link to post
Share on other sites

тогда не надо.

потом программисту дадите 500, он сделает

Share this post


Link to post
Share on other sites

А если так оставить как есть?

Share this post


Link to post
Share on other sites

оставьте конечно. еще 30 лет проработает, не сломается

Share this post


Link to post
Share on other sites

оставьте конечно. еще 30 лет проработает, не сломается

Благодарю!

Share this post


Link to post
Share on other sites

Подскажите как такое же сделать для ocStore 2.3.0.2.2 ?

Там я так понимаю путь к этой логике лежит в /catalog/controller/startup/startup.php

 

$code = '';
        
        $this->load->model('localisation/currency');
        
        $currencies = $this->model_localisation_currency->getCurrencies();
        
        if (isset($this->session->data['currency'])) {
            $code = $this->session->data['currency'];
        }
        
        if (isset($this->request->cookie['currency']) && !array_key_exists($code, $currencies)) {
            $code = $this->request->cookie['currency'];
        }
        
        if (!array_key_exists($code, $currencies)) {
            $code = $this->config->get('config_currency');
        }
        
        if (!isset($this->session->data['currency']) || $this->session->data['currency'] != $code) {
             $this->session->data['currency'] = $code;
        }
        
        if (!isset($this->request->cookie['currency']) || $this->request->cookie['currency'] != $code) {
            setcookie('currency', $code, time() + 60 * 60 * 24 * 30, '/', $this->request->server['HTTP_HOST']);
        }        
        
        $this->registry->set('currency', new Cart\Currency($this->registry));

 

 

Share this post


Link to post
Share on other sites
25 минут назад, nikifalex сказал:

@System256 ну а что не получается? или просто страшно?

Пробовал заменить

if (!array_key_exists($code, $currencies)) {
            $code = $this->config->get('config_currency');
        }

на

if (!array_key_exists($code, $currencies)) {
            $code = $this->set('RUB');
        }

Эффекта нет, кэш чистил.

Share this post


Link to post
Share on other sites

а какой вы хотите эффект? Куки еще надо почистить как минимум.

Share this post


Link to post
Share on other sites
17 часов назад, nikifalex сказал:

а какой вы хотите эффект? Куки еще надо почистить как минимум.

Почистил куки, после захода на сайт в currency опять поступает USD.

 

Share this post


Link to post
Share on other sites

Задача решена. Возможно кому-то пригодится.

В /catalog/controller/startup/startup.php меняем

$code = ''; //Строка 142

На

$code = 'RUB'; // Строка 142

И

if (!array_key_exists($code, $currencies)) {
	$code = $this->config->get('config_currency');
}

На

if (!array_key_exists($code, $currencies)) {
	$code = $this->set('RUB');
}

 

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
You are posting as a guest. If you have an account, please sign in.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Similar Content

    • By ikarus
      375.00 руб
      Скачать/Купить дополнение


      Источники курсов валют
      Модуль добавляет возможность выбирать источник обновления курсов валют, на данный момент помимо стандартного источника opencart в наборе имеются: Центробанк РФ и Нацбанк Украины.
      Также в модуле есть функция указания допустимого процента колебания курса, т.е. в случае когда обновление курсов происходит, например, ежедневно, но по каким то причинам не устраивают скачущие цены на сайте, можно указать процент допустимого изменения курса и в этом случае курс будет обновляться только если выйдет за пределы этого процента.
      Для автоматического удаленного обновления курсов есть соответствующий скрипт и подробное логирование.
      Модуль не заменяет файлы и  стандартный функционал движка, а только добавляет его, поэтому стандартная функция ежедневного обновления при входе в админ.часть не затрагивается и по прежнему будет работать.
       
      Инструкция по установке для Ocstore 2:
      1. Распаковать архив
      2. В админ. части сайта перейти в меню "Дополнения" -> "Установка дополнений"
      3. Нажать кнопку "Загрузить", выбрать соответствующий файл: currency_resource_версия_ocstore.ocmod.zip
      4. Далее обязательно в меню "Дополнения" -> "Менеджер дополнений" нажать кнопку "Обновить"
      5. После этого сделать необходимые настройки в модуле "Дополнения" -> "Модули" -> "(Ikarus) Источники курсов валют"
      6. Также в разделе "Система" -> "Локализация" -> "Валюты" должен появиться выбор источника курсов валют
      7. Скрипт удаленного обновления курсов находится по адресу ваш_сайт/system/export/currency-updater.php
       
      Инструкция по установке для Ocstore 3:
      1. Распаковать архив
      2. В админ. части сайта перейти в меню "Расширения" -> "Установка расширений"
      3. Нажать кнопку "Загрузить", выбрать соответствующий файл: currency_resource_версия_ocstore.ocmod.zip
      4. Далее обязательно в меню "Расширения" -> "Модификаторы" нажать кнопку "Обновить"
      5. После этого сделать необходимые настройки в модуле "Расширения" -> "Расширения" -> "(Ikarus) Источники курсов валют"
      6. Также в разделе "Система" -> "Локализация" -> "Валюта" должен появиться выбор источника курсов валют
      7. Скрипт удаленного обновления курсов находится по адресу ваш_сайт/system/library/currency-updater.php
       
      Инструкция по установке для Opencart 2:
      1. Распаковать архив
      2. В админ. части сайта перейти в меню "Модули" -> "Установка расширений"
      3. Нажать кнопку "Загрузить", выбрать соответствующий файл: currency_resource_версия_opencart.ocmod.zip
      4. Далее обязательно  в меню "Модули" -> "Модификаторы" и нажать кнопку "Обновить"
      5. После этого сделать необходимые настройки в модуле "Модули" -> "Модули" -> "(Ikarus) Источники курсов валют"
      6. Также в разделе "Система" -> "Локализация" -> "Валюта" должен появиться выбор источника курсов валют
      7. Скрипт удаленного обновления курсов находится по адресу ваш_сайт/system/export/currency-updater.php
       
      Добавил ikarus Добавлено 30.04.2019 Категория Цены, скидки, акции, подарки Системные требования Для работы модуля требуется наличие php-расширения cURL Сайт разработчика Старая цена Метод активации Без активации Ioncube Loader Нет OpenCart 2.3
      2.2
      2.1
      2.0 ocStore 3.0
      2.3
      2.2
      2.1 OpenCart.Pro, ocShop Не проверялось Обращение к серверу разработчика Нет  
    • By ikarus
      Модуль добавляет возможность выбирать источник обновления курсов валют, на данный момент помимо стандартного источника opencart в наборе имеются: Центробанк РФ и Нацбанк Украины.
      Также в модуле есть функция указания допустимого процента колебания курса, т.е. в случае когда обновление курсов происходит, например, ежедневно, но по каким то причинам не устраивают скачущие цены на сайте, можно указать процент допустимого изменения курса и в этом случае курс будет обновляться только если выйдет за пределы этого процента.
      Для автоматического удаленного обновления курсов есть соответствующий скрипт и подробное логирование.
      Модуль не заменяет файлы и  стандартный функционал движка, а только добавляет его, поэтому стандартная функция ежедневного обновления при входе в админ.часть не затрагивается и по прежнему будет работать.
       
      Инструкция по установке для Ocstore 2:
      1. Распаковать архив
      2. В админ. части сайта перейти в меню "Дополнения" -> "Установка дополнений"
      3. Нажать кнопку "Загрузить", выбрать соответствующий файл: currency_resource_версия_ocstore.ocmod.zip
      4. Далее обязательно в меню "Дополнения" -> "Менеджер дополнений" нажать кнопку "Обновить"
      5. После этого сделать необходимые настройки в модуле "Дополнения" -> "Модули" -> "(Ikarus) Источники курсов валют"
      6. Также в разделе "Система" -> "Локализация" -> "Валюты" должен появиться выбор источника курсов валют
      7. Скрипт удаленного обновления курсов находится по адресу ваш_сайт/system/export/currency-updater.php
       
      Инструкция по установке для Ocstore 3:
      1. Распаковать архив
      2. В админ. части сайта перейти в меню "Расширения" -> "Установка расширений"
      3. Нажать кнопку "Загрузить", выбрать соответствующий файл: currency_resource_версия_ocstore.ocmod.zip
      4. Далее обязательно в меню "Расширения" -> "Модификаторы" нажать кнопку "Обновить"
      5. После этого сделать необходимые настройки в модуле "Расширения" -> "Расширения" -> "(Ikarus) Источники курсов валют"
      6. Также в разделе "Система" -> "Локализация" -> "Валюта" должен появиться выбор источника курсов валют
      7. Скрипт удаленного обновления курсов находится по адресу ваш_сайт/system/library/currency-updater.php
       
      Инструкция по установке для Opencart 2:
      1. Распаковать архив
      2. В админ. части сайта перейти в меню "Модули" -> "Установка расширений"
      3. Нажать кнопку "Загрузить", выбрать соответствующий файл: currency_resource_версия_opencart.ocmod.zip
      4. Далее обязательно  в меню "Модули" -> "Модификаторы" и нажать кнопку "Обновить"
      5. После этого сделать необходимые настройки в модуле "Модули" -> "Модули" -> "(Ikarus) Источники курсов валют"
      6. Также в разделе "Система" -> "Локализация" -> "Валюта" должен появиться выбор источника курсов валют
      7. Скрипт удаленного обновления курсов находится по адресу ваш_сайт/system/export/currency-updater.php
       
    • By zcell
      750.00 руб
      Скачать/Купить дополнение


      Мультивалютный магазин с автоконвертацией по курсу ЦБ РФ и Yahoo (автообновление и фиксированные курсы валют)
      Цены по курсу ЦБ РФ и Yahoo | Разные валюты у товаров | Фиксированные курсы валют |
      100% совместимость | Пакетное назначение валюты |  Легкая установка
       
      Новая версия от 21 ноября!

      ВОЗМОЖНОСТИ:
      - Актуальные цены по курсу ЦентроБанка РФ и Yahoo
      - Пакетное редактирование валюты товаров по категории и/или бренду
      - Автоподсчет сконвертированной цены при редактировании цен товара;
      - Разные валюты для опций, скидок, акций и основной цены;
      - Возможность указать разные валюты у товаров;
      - Возможность использовать валюты с фиксированным курсом;
      - Клиенты видят суммы в валюте по умолчанию (рассчитанные по актуальному курсу);
      - Автоматическое обновление курса валют.
       
       
      ПРЕИМУЩЕСТВА:
      - Простая установка;
      - Интеграция в ядре системы, что позволяет получить интеграцию с подавляющим большинством модулей и шаблонов;
      - Не грузит систему, всего один файл.
        
       
      ПОДДЕРЖКА:
      В случае, если модуль не заработает в вашем магазине (1% вероятность), могу оказать бесплатную помощь по интеграции, но не более 30 минут (в 99% случаев этого времени достаточно).
      Сообщения без адреса сайта будут игнорируются. Для помощи по интеграции потребуется доступ по FTP и доступ в административную панель.
       
         
       
       
      УСТАНОВКА:
      0. Сделать БЕКАП базы данных!
      Для Opencart 1.5.x:
      1. Закачать через FTP файл модуля в папку vqmod/xml
      Для Opencart 2.1.x, 2.2.x, 2.3.x,3.x.x:
      1. Воспользоваться стандартным установщиком дополнений Opencart.
      Для всех версий:
      2. Открыть раздел Система - Локализация - Валюты
       
      КАК ПОЛЬЗОВАТЬСЯ:
      - После установки, зайдите в раздел (Система - Локализация - Валюты) - модуль автоматически проверит и создаст необходимые для функционирования поля
      - Зайдите в Система - Настройка -> Локализация и выберите подходящий метод обновления валют
      - Добавьте валюты (Система - Локализация - Валюты), если отсутствую необходимые валюты. Необходимо указать правильно код валюты - большими буквами, например RUB, USD, EUR
      - Выберите в каждом товаре, у которого валюта отлична от основной, нужную валюты (селектор находится справа от поля цены)
      - Если вам нужна фиксированная валюта (например 1 уе = 65 руб), то создаете новую валюту, пишите вымышленный код валюты, например FIX, FIC, FIE, чтобы система обновления не меняла курс автоматом, в поле значения курса пишите значение курса в рублях, далее выбираете эту валюту в нужных товарах.
        
      КАК РАБОТАЕТ МОДУЛЬ (для программистов и интеграторов):
      - Модуль создает дополнительные поля price_value и currency в таблице product, product_special, product_discount и product_option_value.
      - В поле price вышеуказанных таблиц хранится вычисленное значение цены по указанному значение price_value для валюты currency.
      - При обновлении курса валют во всех таблицах запускается перерасчет цены согласно новому курсу
      - При каждом сохранении товара поля для данного товара пересчитываются по текущему курсу
      - Фронт никак не модифицируется модулем, в связи с чем получаем 100% совместимость
       
      Административная панель: 
      - Цены товаров могут задавать в разных валютах (например указываете 10 USD в админке - на фронте будет цена по актуальному курсу доллара в рублях);
      - Валюты задаются как индивидуально для каждого товара, так и работает пакетное назначение, например в BatchEditor;
      - В заказах фиксируется сумма в рублях, по курсу соответствующему моменту оформления заказа (то есть цена товаров в заказе будет фиксирована).
       
      Фронт: 
      - Все цены автоматически показываются в основной валюте сайта;
      - Работает конвертация цены Опций, Скидки за количество;
      - Работает конвертация в мини-корзине, корзине и оформлении заказа;
      - Также корректно работает переключение между валютами в интернет магазине с пересчетом по актуальным курсам.
       
      Обновление курса валют:
      - Происходит при открытии главной страницы административной панели;
      - Источником курса валют является ЦБ РФ и Yahoo (если не удалось получить данные у ЦБ РФ, получит у Yahoo).
       
      Валюты:
      1. Стандартные валюты
      Любые валюты, которые поддерживаются ЦБ РФ или Yahoo
      2. Фиксированные курсы валют
      Например, если поставщик зафиксировал курс на 75 руб.
      Можно будет завести валюту и указать ей нужный курс, при обновлении курс будет сохраняться.
       

       

       


       
      Добавил zcell Добавлено 28.12.2015 Категория Цены, скидки, акции, подарки Системные требования Сайт разработчика Старая цена 900 Метод активации Автоматическая активация Ioncube Loader Нет OpenCart 3.0
      2.3
      2.2
      2.1
      2.0
      1.5.6.4
      1.5.6.3
      1.5.6.2
      1.5.6.1
      1.5.6
      1.5.5.1
      1.5.5
      1.5.4.1
      1.5.3.1 ocStore 3.0
      2.3
      2.2
      2.1
      1.5.5.1.2
      1.5.5.1.1
      1.5.5.1
      1.5.4.1.2
      1.5.4.1.1
      1.5.4.1
      1.5.3.1
      1.5.2.1
      1.5.1.3 OpenCart.Pro, ocShop Не проверялось Обращение к серверу разработчика Нет  
    • By ashap
      Модуль позволяет обновлять курс валют с сайтов ЦБ РФ (cbr.ru), НБ Украины (bank.gov.ua), Приват Банк - все 4 варианта курсов ПриватБанк (карточный покупка, карточный продажа, наличный покупка, наличный продажа) (privatbank.ua), НБ РБ (nbrb.by), Европейский ЦБ (ecb.int). Использует стандартный функционал обновления раз в сутки при заходе на главную админ панели, ручного обновления из списка валют, а также имеет уникальную функцию обновления по расписанию через cron
       
      Модуль умеет увеличивать полученный курс на заданный процент.
       
      * Не заменяет системные файлы
      * Не требует vqmod
      * Устраняет ошибку в админ панели Warning: Division by zero in ...../admin/model/localisation/currency.php
       
      Смотрите также другие модули по ссылке
       
       
    • By ashap
      1 400.00 руб
      Скачать/Купить дополнение


      Автоматическое обновление курса валют
      Модуль позволяет обновлять курс валют с сайтов ЦБ РФ (cbr.ru), НБ Украины (bank.gov.ua), Приват Банк - все 4 варианта курсов ПриватБанк (карточный покупка, карточный продажа, наличный покупка, наличный продажа) (privatbank.ua), НБ РБ (nbrb.by), Европейский ЦБ (ecb.int). Использует стандартный функционал обновления раз в сутки при заходе на главную админ панели, ручного обновления из списка валют, а также имеет уникальную функцию обновления по расписанию через cron
       
      Модуль умеет увеличивать полученный курс на заданный процент.
       
      * Не заменяет системные файлы
      * Не требует vqmod
      * Устраняет ошибку в админ панели Warning: Division by zero in ...../admin/model/localisation/currency.php
       
      Смотрите также другие модули по ссылке
       
       
      Добавил ashap Добавлено 04.06.2018 Категория Модули Системные требования Для работы автоматического обновления по расписанию на хостинге (сервере) необходим cron с поддержкой curl или wget Сайт разработчика https://store.pe-art.ru/ Старая цена Метод активации Автоматическая активация Ioncube Loader Нет OpenCart 3.0
      2.3
      2.1
      2.0
      1.5.6.4
      1.5.6.3
      1.5.6.2
      1.5.6.1
      1.5.6
      1.5.5.1
      1.5.5
      1.5.4.1
      1.5.3.1 ocStore 3.0
      2.3
      2.1
      1.5.5.1.2
      1.5.5.1.1
      1.5.5.1
      1.5.4.1.2
      1.5.4.1.1
      1.5.4.1
      1.5.3.1 OpenCart.Pro, ocShop Opencart.pro 2.3
      Opencart.pro 2.1
      OcShop 2.0.3.х
      OcShop 1.5.6.4.х Обращение к серверу разработчика Нет  
  • Recently Browsing   0 members

    No registered users viewing this page.

×

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.