true, 'default' => null]; } foreach ($raw as $flag_id => $value) { if (is_array($value)) { $enabled = isset($value['enabled']) ? (bool) $value['enabled'] : false; $default = array_key_exists('default', $value) ? $value['default'] : null; } else { // Altbestand: nur bool / 0/1 etc. $enabled = (bool) $value; $default = null; } $snapshot[$flag_id] = [ 'enabled' => $enabled, 'default' => $default, ]; } // === AI / Simplification / Voice Defaults === $ai_settings = get_option('a11ybridge_ai_settings', []); $simpl_settings = get_option('a11ybridge_simplification_settings', []); $voice_config = get_option('a11ybridge_voice_config', []); // 1) Textvereinfachung (Simple Language) $snapshot['simpleLanguageEnabled'] = [ 'enabled' => !empty($simpl_settings['enable_text_simplification']), 'source' => 'admin', ]; $snapshot['simplificationLevel'] = [ 'value' => a11ybridge_catalog_canonical( 'textSimplification.level', !empty($simpl_settings['default_level']) ? (string)$simpl_settings['default_level'] : 'basic', 'basic' ), 'source' => 'admin', ]; $snapshot['simplificationTargetLanguage'] = [ 'value' => a11ybridge_catalog_canonical( 'textSimplification.targetLanguage', !empty($simpl_settings['target_language']) ? (string)$simpl_settings['target_language'] : 'original', 'original' ), 'source' => 'admin', ]; // 2) AI Alt-Text $snapshot['altTextEnabled'] = [ 'enabled' => !empty($ai_settings['enable_ai_image_description']), 'source' => 'admin', ]; $snapshot['altTextDescriptionLevel'] = [ 'value' => !empty($ai_settings['description_level']) ? $ai_settings['description_level'] : 'brief', 'source' => 'admin', ]; $snapshot['altTextTargetLanguage'] = [ 'value' => !empty($ai_settings['target_language']) ? $ai_settings['target_language'] : 'original', 'source' => 'admin', ]; $snapshot['simpleLanguageConsentRequired'] = [ 'default' => array_key_exists('consent_required', $simpl_settings) ? !empty($simpl_settings['consent_required']) : true, 'source' => 'admin', ]; $snapshot['simpleLanguageConsentTtlHours'] = [ 'default' => isset($simpl_settings['consent_ttl_hours']) ? max(0, (int)$simpl_settings['consent_ttl_hours']) : 0, 'source' => 'admin', ]; // (WP.org build) Voice snapshot excluded from MVP. return $snapshot; } }