getContainer()->getPermissionsService()->currentUserCanWrite(Entities::SETTINGS)) { throw new AccessDeniedException('You are not allowed to write settings.'); } /** @var SettingsService $settingsService */ $settingsService = $this->getContainer()->get('domain.settings.service'); /** @var CurrentLocationInterface $locationService */ $locationService = $this->getContainer()->get('application.location.service'); /** @var LessParserService $lessParserService */ $lessParserService = $this->getContainer()->get('infrastructure.frontend.lessParser.service'); if ($command->getField('customization')) { $customizationData = $command->getField('customization'); $lessParserService->compileAndSave([ 'color-accent' => $customizationData['primaryColor'], 'color-gradient1' => $customizationData['primaryGradient1'], 'color-gradient2' => $customizationData['primaryGradient2'], 'color-text-prime' => $customizationData['textColor'], 'color-text-second' => $customizationData['textColor'], 'color-white' => $customizationData['textColorOnBackground'], 'font' => $customizationData['font'] ]); } $settingsFields = $command->getFields(); if (!AMELIA_LITE_VERSION && WooCommerceService::isEnabled() && $command->getField('payments')['wc']['enabled']) { $settingsFields['payments']['wc']['productId'] = WooCommerceService::getIdForExistingOrNewProduct( $settingsService->getCategorySettings('payments')['wc']['productId'] ); } $settingsService->setAllSettings($settingsFields); $settings = $settingsService->getAllSettingsCategorized(); $settings['general']['phoneDefaultCountryCode'] = $settings['general']['phoneDefaultCountryCode'] === 'auto' ? $locationService->getCurrentLocationCountryIso() : $settings['general']['phoneDefaultCountryCode']; $result->setResult(CommandResult::RESULT_SUCCESS); $result->setMessage('Successfully updated settings.'); $result->setData([ 'settings' => $settings ]); return $result; } }