$this->get_option( 'adeck_widget_enable', $defaults ), 'adeck_widget_position' => $this->sanitize_widget_position( $this->get_option( 'adeck_widget_position', $defaults ) ), 'adeck_widget_side' => $this->sanitize_widget_side( $this->get_option( 'adeck_widget_side', $defaults ) ), 'adeck_widget_launcher_size' => $this->sanitize_widget_launcher_size( $this->get_option( 'adeck_widget_launcher_size', $defaults ) ), 'adeck_widget_launcher_icon' => $this->sanitize_widget_launcher_icon( $this->get_option( 'adeck_widget_launcher_icon', $defaults ) ), 'adeck_display_mode' => ADECK_Config_Schema::sanitize_display_mode( $this->get_option( 'adeck_display_mode', $defaults ) ), 'adeck_display_page_ids' => ADECK_Config_Schema::sanitize_display_page_ids( $this->get_option( 'adeck_display_page_ids', $defaults ) ), 'adeck_display_url_patterns' => ADECK_Config_Schema::sanitize_display_url_patterns( $this->get_option( 'adeck_display_url_patterns', $defaults ) ), 'adeck_display_exclusions_enabled' => $this->get_option( 'adeck_display_exclusions_enabled', $defaults ), 'adeck_display_excluded_page_ids' => ADECK_Config_Schema::sanitize_display_page_ids( $this->get_option( 'adeck_display_excluded_page_ids', $defaults ) ), 'adeck_display_excluded_url_patterns' => ADECK_Config_Schema::sanitize_display_url_patterns( $this->get_option( 'adeck_display_excluded_url_patterns', $defaults ) ), 'adeck_display_hide_desktop' => $this->get_option( 'adeck_display_hide_desktop', $defaults ), 'adeck_display_hide_tablet' => $this->get_option( 'adeck_display_hide_tablet', $defaults ), 'adeck_display_hide_mobile' => $this->get_option( 'adeck_display_hide_mobile', $defaults ), 'adeck_visible_widget_features' => ADECK_Config_Schema::sanitize_visible_widget_features( $this->get_option( 'adeck_visible_widget_features', $defaults ) ), 'adeck_visible_widget_features_initialized' => $this->get_option( 'adeck_visible_widget_features_initialized', $defaults ), 'adeck_statement_enable' => $this->get_option( 'adeck_statement_enable', $defaults ), 'adeck_statement_content' => $this->get_option( 'adeck_statement_content', $defaults ), 'adeck_footer_enable' => $this->get_option( 'adeck_footer_enable', $defaults ), 'adeck_custom_logo' => $this->get_option( 'adeck_custom_logo', $defaults ), 'adeck_footer_link' => $this->sanitize_footer_link( $this->get_option( 'adeck_footer_link', $defaults ) ), 'adeck_widget_color' => $this->get_color_option( 'adeck_widget_color', $defaults ), 'adeck_header_bg_color' => $this->get_color_option( 'adeck_header_bg_color', $defaults ), 'adeck_primary_color' => $this->get_color_option( 'adeck_primary_color', $defaults ), 'adeck_modal_bg_color' => $this->get_color_option( 'adeck_modal_bg_color', $defaults ), 'adeck_icon_text_color' => $this->get_color_option( 'adeck_icon_text_color', $defaults ), 'adeck_reset_bg_color' => $this->get_color_option( 'adeck_reset_bg_color', $defaults ), 'adeck_reset_text_color' => $this->get_color_option( 'adeck_reset_text_color', $defaults ), 'adeck_reset_hover_color' => $this->get_color_option( 'adeck_reset_hover_color', $defaults ), ] ); } public function build_admin_config() { return $this->build_frontend_config()->merge( [ 'storageKeys' => ADECK_Config_Schema::get_storage_keys(), 'configVersion' => ADECK_Config_Schema::get_widget_config_version(), ] ); } private function get_option( $key, array $defaults ) { return get_option( $key, isset( $defaults[ $key ] ) ? $defaults[ $key ] : null ); } private function get_color_option( $key, array $defaults ) { $value = sanitize_hex_color( $this->get_option( $key, $defaults ) ); return $value ? $value : $defaults[ $key ]; } private function sanitize_widget_position( $value ) { $allowed = ADECK_Config_Schema::get_allowed_widget_positions(); return in_array( $value, $allowed, true ) ? $value : 'bottom-right'; } private function sanitize_widget_side( $value ) { $allowed = ADECK_Config_Schema::get_allowed_widget_sides(); return in_array( $value, $allowed, true ) ? $value : 'right'; } private function sanitize_widget_launcher_size( $value ) { return ADECK_Config_Schema::sanitize_widget_launcher_size( $value ); } private function sanitize_widget_launcher_icon( $value ) { return ADECK_Config_Schema::sanitize_widget_launcher_icon( $value ); } private function sanitize_footer_link( $value ) { $defaults = ADECK_Config_Schema::get_option_defaults(); $clean = esc_url_raw( (string) $value, [ 'http', 'https' ] ); return '' !== $clean ? $clean : $defaults['adeck_footer_link']; } }