Внесу и я свои 5 копеек.
Когда то просто перезаписал метод setCurrency класса Tools - задание валюты по умолчанию.
\override\classes\Tools.php
<?php
class Tools extends ToolsCore
{
public static function setCurrency($cookie)
{
if (Tools::isSubmit('SubmitCurrency') && ($id_currency = Tools::getValue('id_currency'))) {
/** @var Currency $currency */
$currency = Currency::getCurrencyInstance((int)$id_currency);
if (is_object($currency) && $currency->id && !$currency->deleted && $currency->isAssociatedToShop()) {
$cookie->id_currency = (int)$currency->id;
}
}
$currency = null;
if ((int)$cookie->id_currency) {
$currency = Currency::getCurrencyInstance((int)$cookie->id_currency);
}
if (!Validate::isLoadedObject($currency) || (bool)$currency->deleted || !(bool)$currency->active) {
//Vlad_Stiff edit 1 next line -> set default currency to USD, to then be converted into UAH.
$currency = Currency::getCurrencyInstance(1)); // default line -> $currency = Currency::getCurrencyInstance(Configuration::get('PS_CURRENCY_DEFAULT'));
}
$cookie->id_currency = (int)$currency->id;
if ($currency->isAssociatedToShop()) {
return $currency;
} else {
// get currency from context
$currency = Shop::getEntityIds('currency', Context::getContext()->shop->id, true, true);
if (isset($currency[0]) && $currency[0]['id_currency']) {
$cookie->id_currency = $currency[0]['id_currency'];
return Currency::getCurrencyInstance((int)$cookie->id_currency);
}
}
return $currency;
}
}
Правка метода Tools после //Vlad_Stiff
з.ы. вариант для Prestashop 1.6
з.ы.ы да и править файлы без override плохая привычка, с очередным обновлением получите сюрприз в виде "а что случилось, ой файл перезаписался, ой а что и где я правил то"...