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

описание как в админке указывать цену в $, а отображать пользователю в нац валюте


freelancer

Recommended Posts

на примере рубля
для этого в админке должно быть две валюты Доллар и Рубль
1. у доллара коэффициент 1
у рубля задаете сами (коэффициент обновляется автоматически каждый раз при входе в админку)
z7qvqAs.pngUNj0TzY.png
 
2. в настройках в админке нужно указать основную валюту Доллар
lH4yjMM.png
 
3.1. для одновалютных магазинов
в файле 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'));
     }

добавить

$this->set("RUB");

3.2 для многовалютных магазинов

в файле system/library/currency.php
блок

     } else {
       $this->set($this->config->get('config_currency'));
     }

заменить на

     } else {
       $this->set("RUB");
     }
Змінено користувачем freelancer
  • +1 1
Надіслати
Поділитися на інших сайтах

Можно и вот так поменять с:

public function format($number, $currency = '', $value = '', $format = true) {

на:

public function format($number, $currency = 'RUB', $value = '', $format = true) {
Надіслати
Поділитися на інших сайтах

еще как вариант:

Если не мультимагазин, то просто в index.php (в корне сайта) после строки:
$registry->set('currency', new Currency($registry));

Добавить строку:

$registry->get('currency')->set('RUB');

Это в магазине принудительно выставит валюту.

 

При таком способе корректно работает модуль автообновление цены при выборе опций

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

  • 1 month later...

при всём уважении, этот топик в FAQ, нет смысла объяснять каждому, который только установил opencart  почему надо делать так или почему его метод плохой (хотя да, я сам виноват)

оффтоп потер, остались только сообщения по теме

Змінено користувачем freelancer
Надіслати
Поділитися на інших сайтах

  • 1 year later...

3.1. для одновалютных магазинов в файле 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'));
		}
			$this->set("UAH");

Со скобками, по аналогии, что-то не то выходит. просто.

Змінено користувачем AlexBr
Надіслати
Поділитися на інших сайтах


  • 6 months later...
  • 1 year later...

Подскажите, что я делаю не так? Версия ocStore 2.3.0.2.3

Screenshot_25.thumb.png.c13c95014b930d00cd81efc6b465c4ba.png
 

Спойлер

 

Screenshot_27.png.95de27502ea5c370c81c9089e2e9c440.png

Screenshot_28.png.e6ab774dd6dc1b55a6a2079dcd6088f5.png

Screenshot_29.png.38b8c3591d374cb48bf468722739447b.png

 

 

В файле /public_html/catalog/controller/startup/startup.php

Перед строкой:

$this->registry->set('currency', new Cart\Currency($this->registry));
Добавить:

$this->session->data['currency'] = 'UAH';

 

И все, сайт вешается, белый экран и ошибка HTTP ERROR 500

Подскажите, как решить проблему?

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


40 минут назад, Rezoner сказал:

И все, сайт вешается, белый экран и ошибка HTTP ERROR 500

Подскажите, как решить проблему?

Для начала подскажите текст ошибки из лога php.

Т.к. на странице ошибка 500, то в логе php должны быть ошибки.

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

для 2.3 я бы добавил 

        $code = 'RUB';

перед

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

в файле catalog/controller/startup/startup.php

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

  • 1 year later...
В 15.02.2019 в 07:42, freelancer сказал:

для 2.3 я бы добавил 


        $code = 'RUB';

перед


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

в файле catalog/controller/startup/startup.php

 

Версия opencart 2.3, добавил только данную строку ничего более не делал - вроде работает... (в админке доллар, на сайте рубли обе валюты в админке включены, основной назначен доллар). Надо ли еще гдето указывать принудительно или для 2.3 только тут достаточно?

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


  • 1 month later...
  • 1 year later...

А как сделать, чтобы цены в админке были в долларах, а на сайт, при первом заходе пользователя, ставились рубли, а потом при переключении, если ему надо, он переключал валюты?

Змінено користувачем nash
Надіслати
Поділитися на інших сайтах


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

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

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

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

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

Вхід

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

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

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

Important Information

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