1, 'lwhFormat' => '%L x %W x %H', 'cfPriority' => 'variation', 'attrPriority' => 'one', 'excludedProdStatuses' => '', 'disableCreationOrderItems' => 0, 'showOnlyOwnedByUserProfiles' => 0, 'doNotAllowToEditProfiles' => 0, 'default_'.ProfileTypeEnum::PRODUCT.'_profile' => 1, 'default_'.ProfileTypeEnum::ORDER.'_profile' => 2, 'default_'.ProfileTypeEnum::USER.'_profile' => 3, 'lken' => '', ); public static $defaultUserSettings = array( 'copies' => 1, 'useStockQuantity' => 0, 'importShowMatchingForm' => 1, 'bsPrintCounter' => 0, ); protected static $settingsStoredAsJson = array(); public static function get() { if (self::$userSettings === null) { $settings = (new UserSettingsModel())->getAll(get_current_user_id()); $settings = self::convertToJsFormat($settings); $settings = array_merge(self::$defaultUserSettings, $settings); self::$userSettings = $settings; } return self::$userSettings; } public static function getUserOption($option, $default = '') { $userSettings = self::get(); return (isset($userSettings[$option])) ? $userSettings[$option] : $default; } public static function getGeneral($isReset = false) { if (self::$generalSettings === null || $isReset) { $settings = (new UserSettingsModel())->getAll(); $settings = self::convertToJsFormat($settings); $settings = array_merge(self::$defaultGeneralSettings, $settings); self::$generalSettings = $settings; } return self::$generalSettings; } public static function getOption($option, $default = '') { $settings = self::getGeneral(); return (isset($settings[$option])) ? $settings[$option] : $default; } private static function convertToJsFormat($settings) { $data = array(); foreach ($settings as $value) { $data[$value["param"]] = $value["value"]; if (in_array($value["param"], self::$settingsStoredAsJson)) { $data[$value["param"]] = @json_decode($value["value"]); } } return $data; } }