Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Как подменить валюту по умолчанию в opencart 3x


flaim611

Recommended Posts

Здравствуйте!
Идея такая
Не очень хочу покупать модуль на изменение валют относительно стран, т.к. мне нужно лишь только, чтобы валюта по умолчанию в России была рубль - все остальные - евро (а остальные валюты выбираются пользователем)

У меня стоит GeoFX (Библиотека для php) и в сессии у меня хранится код страны($_SESSION['lang]) клиента (RU, UK, USA) и переключатель (чтобы пользователь из России мог изменить валюты с рублей) ($_SESSION['check] = false)

Мне нужно знать, где в коде opencart 3 устанавливается валюта по умолчанию, где мне нужно создать примерно такую конструкцию


if($_SESSION['lang'] = "RU" && $_SESSION['check] == false){

    поставить валюту по умолчанию RUB;
    $_SESSION['check] == true;

}else{

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

}


За ранее спасибо за ответы

Надіслати
Поділитися на інших сайтах


39 минут назад, nikifalex сказал:

/catalog/controller/startup/startup.php

 

41 минуту назад, Prooksius сказал:

Посмотрите в
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));


       И, как я понял, интересующая строчка эта:
       if (!array_key_exists($code, $currencies)) {
            $code = $this->config->get('config_currency');
        }

       могу ли прописать здесь:
      if (!array_key_exists($code, $currencies)) {
            $code = $this->config->get('config_currency');
      }
       if (!array_key_exists($code, $currencies) && $_SESSION['lang'] == "RU" && $_SESSION['check'] == true  ) {
            $code = $this->config->get('RUB');
            $_SESSION['check'] = false;
        }
        

 

       Я просто не знаю, как в get('config_currency');передавать код валюты

Надіслати
Поділитися на інших сайтах


изменил вот так код, ничего не поменялось

 

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

        if (!array_key_exists($code, $currencies) && $_SESSION['lang'] == "RU" && $_SESSION['check'] == 0) {
            $code = 'RUB';
            $_SESSION['check'] = 1;
        }

 

55 минут назад, nikifalex сказал:

/catalog/controller/startup/startup.php

 

55 минут назад, nikifalex сказал:

/catalog/controller/startup/startup.php

 

Надіслати
Поділитися на інших сайтах


2 минуты назад, Prooksius сказал:

https://prnt.sc/12beuxy - а чем отличаются вот эти действия?

 

$this->config->set('config_currency', 'RUB');   

извиняюсь, во втором случае должны ставится евро, т.к. по умолчанию стоят евро (опечатался )

Надіслати
Поділитися на інших сайтах


то есть вот так должен выглядеть код? 

5 минут назад, Prooksius сказал:

https://prnt.sc/12beuxy - а чем отличаются вот эти действия?

 

$this->config->set('config_currency', 'RUB');   


if ($_SESSION['lang'] == "RU" && $_SESSION['check'] == 0) {
            $this->config->set('config_currency', 'RUB'); 
            $_SESSION['check'] = 1;
        }
        
        if (!array_key_exists($code, $currencies)) {
            $code = $this->config->get('config_currency');
        }

Надіслати
Поділитися на інших сайтах


9 минут назад, Prooksius сказал:

https://prnt.sc/12beuxy - а чем отличаются вот эти действия?

 

$this->config->set('config_currency', 'RUB');   

Большое вам спасибо, у меня получилось!

 

Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.