in app/Services/User/CreateUser.php [84:134]
private function setRegionalParameters($user, $ipAddress): User
{
$infos = RequestHelper::infos($ipAddress);
// Associate timezone and currency
$currencyCode = $infos['currency'];
$timezone = $infos['timezone'];
if ($infos['country']) {
$country = CountriesHelper::getCountry($infos['country']);
} else {
$country = CountriesHelper::getCountryFromLocale($user->locale);
}
// Timezone
if (! is_null($timezone)) {
$user->timezone = $timezone;
} elseif (! is_null($country)) {
$user->timezone = CountriesHelper::getDefaultTimezone($country);
} else {
$user->timezone = config('app.timezone');
}
// Currency
if (! is_null($currencyCode)) {
$this->associateCurrency($user, $currencyCode);
} elseif (! is_null($country)) {
foreach ($country->currencies as $currency) {
if ($this->associateCurrency($user, $currency)) {
break;
}
}
}
// Temperature scale
if (! is_null($country)) {
switch ($country->cca2) {
case 'US':
case 'BZ':
case 'KY':
$user->temperature_scale = 'fahrenheit';
break;
default:
$user->temperature_scale = 'celsius';
break;
}
} else {
$user->temperature_scale = 'celsius';
}
return $user;
}