Skip to content

Commit

Permalink
Fix default language for shops in multishop.
Browse files Browse the repository at this point in the history
  • Loading branch information
MeKeyCool committed May 9, 2022
1 parent 1d151ce commit 1db61f7
Showing 1 changed file with 19 additions and 3 deletions.
22 changes: 19 additions & 3 deletions config/config.inc.php
Expand Up @@ -223,12 +223,28 @@
}

$isNotValidLanguage = !isset($language) || !Validate::isLoadedObject($language);
// `true` if language is defined from multishop or backoffice session
$isLanguageDefinedFromCustomSession = (isset($language) && $language->isAssociatedToShop()) || isset($employee);
// `true` if language is defined from multishop or backoffice (`$employee` variable defined) session
$isLanguageDefinedFromSession = (isset($language) && $language->isAssociatedToShop()) || isset($employee);

$useDefaultLanguage = $isNotValidLanguage || !$isLanguageDefinedFromCustomSession;
$useDefaultLanguage = $isNotValidLanguage || !$isLanguageDefinedFromSession;
if ($useDefaultLanguage) {

// Default value for most cases
$language = new Language(Configuration::get('PS_LANG_DEFAULT'));

// if `PS_LANG_DEFAULT` not a valid language for current shop then
// use first valid language of the shop as default language.
if($language->isMultishop() && !$language->isAssociatedToShop()) {
$shopLanguages = $language->getLanguages(true, Context::getContext()->shop->id, false);

if(isset($shopLanguages[0]['id_lang'])) {
$shopDefaultLanguage = new Language($shopLanguages[0]['id_lang']);

if(Validate::isLoadedObject($language)) {
$language = $shopDefaultLanguage;
}
}
}
}

$context->language = $language;
Expand Down

0 comments on commit 1db61f7

Please sign in to comment.