yii2 - изменить валюту в соответствии с адресом - PullRequest
0 голосов
/ 05 декабря 2018

У меня есть приложение, в котором пользователи из разных стран создают заказы.Мне нужно изменить валюту заказа в соответствии с адресом пользователя.Я могу получить страну из данных учетной записи.Моя проблема в том, как мне изменить валюту в зависимости от страны?

Где я могу сделать это в Yii2?

Я понимаю, что установить валюту можно в main.php.Но мне нужно иметь возможность менять валюту во время выполнения.

1 Ответ

0 голосов
/ 05 декабря 2018
  • Сначала вы должны получить страну пользователя по IP, для этого вы можете использовать yii2-geoip .

  • Затем вы должны получитьВалюта страны, для получения списка валют страны, чтобы увидеть список валют .

  • Установить сеанс для валюты магазина и изменить всю валюту сайта.

Пример:

<?php
$geoip = new \lysenkobv\GeoIP\GeoIP();
$ip = $geoip->ip(Yii::$app->request->getUserIP());
$currencies = json_decode(file_get_contents('data.json'), true);
foreach ($currencies as $currency) {
    if (strtoupper($currency['country']) == strtoupper($ip->isoCode)) {
        // set session and other jobs
    }
}

Пример для config/main.php (для yii2-app-advanced) и config/web.php (для yii2-app-basic):

<?php
return [
    //
    'on beforeAction' => function ($action) {
        if (!Yii::$app->session->has('global-currency')) {
            // your code for get found user $currency, maybe from db or ip
            Yii::$app->session->set('global-currency', $currency);
        }
    }
];
...