Доброго времени суток! При доработке модуля импорта товаров столкнулся со следующей ситуацией. В админке есть несколько пользователей, при этом у одного из них интерфейс (и фронтенд и бэкэнд) русифицированы. У другого - на английском. Общие настройки магазина (Stores -> Configurations -> General -> Locale Options) у всех одинаков - Russian.
При этом язык самого пользователя в настройках разный (System -> All Users -> User Info) - ru/en:
Проблема в том, что при импорте товаров нужно указывать некоторые атрибуты по их заполнителям:
а в руссифицированном пользователе соответственно поле атрибута содержит "Каталог, Поиск"
В коде примерно так:
... $this->_resolver = $this->_objectManager->get('Magento\Framework\Locale\Resolver'); $this->myLocale = $this->_resolver->getLocale(); ... if($this->myLocale == 'ru_RU') { $buffer['visibility'] = 'Не видим по отдельности'; } else { $buffer['visibility'] = 'Not Visible Individually'; }
Но в не русифицированном пользователе getLocale() так же возвращает в коде ru_RU и импорт в последующем крашится из-за невалидного значения атрибута (написанного на русском для англоязычного интерфейса) .
Подскажите пожалуйста, как можно программно различить именно текущий язык админки или получить местозаполнители атрибутов?
P.S. Модуль импорта на базе https://github.com/firegento/FireGento_FastSimpleImport2
Solved! Go to Solution.
UPD Оказывается нужно было получить пользователя сессии, а там уже методы извлечения информации есть...
... $this->authSession = $this->_objectManager->get('\Magento\Backend\Model\Auth\Session'); ... $user = $this->authSession->getUser(); $locale = $user->getInterfaceLocale();
UPD Оказывается нужно было получить пользователя сессии, а там уже методы извлечения информации есть...
... $this->authSession = $this->_objectManager->get('\Magento\Backend\Model\Auth\Session'); ... $user = $this->authSession->getUser(); $locale = $user->getInterfaceLocale();