false, ); } public static function get() { $saved = get_option( self::OPTION_KEY, array() ); return wp_parse_args( $saved, self::defaults() ); } public static function update( array $input ) { $current = self::get(); $clean = $current; // Every former field is now in per-module storage: // - minify_* → MinifyModule, gzip_enabled → GzipModule, // cache_expiry / excluded_urls → CacheModule. // Only cache_enabled lives on here, owned by Cache::toggle's // drop-in lifecycle. All other writes are silently ignored to // keep duplicate sources from re-forming. if ( isset( $input['cache_enabled'] ) ) { $clean['cache_enabled'] = (bool) $input['cache_enabled']; } update_option( self::OPTION_KEY, $clean ); return $clean; } public static function set_defaults() { if ( false === get_option( self::OPTION_KEY ) ) { add_option( self::OPTION_KEY, self::defaults() ); } } // sanitize_urls() removed — excluded_urls now owned by CacheModule // and validated by Settings_Manager's typed schema (list / item_type). }