class-settings-store.php

Settings store boundary — wppo_settings memo, writes, hook coherence, snapshots, schema allowlist, and settings sanitization.

Source includes/Settings/class-settings-store.php6 min readPart of Performance Optimisation

includes/Settings/class-settings-store.php

Settings store boundary — wppo_settings memo, writes, hook coherence, snapshots, schema allowlist, and settings sanitization.

Namespace: PerformanceOptimise\\Inc · Lines: 1666

Class Settings_Store

Class Settings_Store

Source: includes/Settings/class-settings-store.php, line 50

final class Settings_Store

Tags: @since 2.4.0

Constants

ConstantVisibilityValueLine
SETTINGS_SNAPSHOT_OPTIONpublic\'wppo_settings_snapshot\'67
ALLOWED_SETTINGS_KEYSpublicarray( \'file_optimisation\', \'preload_settings\', \'image_optimisation\', \'database_cleanup\', \'object_cache\', \'performance_audit\', \'cache_settings\', \'litespeed_integration\', \'llms_txt\', \'od_integration\', \'bfcache\', \'perf_translations\', \'ai_adaptive\', \'edge_cache\', )82
ALLOWED_SETTINGS_TABSpublicself::ALLOWED_SETTINGS_KEYS109

Properties

PropertyVisibilityTypeDefaultLine
$resolved_settings_cacheprivate staticarrayarray()1011
$resolved_settings_cache_loadedprivate staticarrayarray()1019
$settings_cacheprivate staticarrayarray()1345
$settings_cache_loadedprivate staticarrayarray()1353

publicstatic get_allowed_settings_keys()

public static function get_allowed_settings_keys(): array

Get the allowlisted top-level settings keys.

Return: string[].

Tags: @since 2.0.0 · @since 2.4.0 Moved from Util (REF-011); behavior unchanged.

Source: includes/Settings/class-settings-store.php, line 118

publicstatic sanitize_mode_value()

public static function sanitize_mode_value($value): string

Sanitize the LiteSpeed integration `mode` value against its allowlist.

ParameterTypeDefaultDescription
$valuemixed—Raw value.

Return: string — Allowlisted mode (\’auto\’ fallback).

Tags: @since 2.4.0 Moved from Util (REF-011); behavior unchanged.

Source: includes/Settings/class-settings-store.php, line 132

publicstatic sanitize_ttl_overrides()

public static function sanitize_ttl_overrides($value): array

Sanitize per-post-type cache TTL overrides.

ParameterTypeDefaultDescription
$valuearray—Raw overrides.

Return: array — Sanitized overrides.

Tags: @since 2.4.0 Moved from Util (REF-011); behavior unchanged.

Source: includes/Settings/class-settings-store.php, line 146

publicstatic sanitize_cdn_mapping()

public static function sanitize_cdn_mapping($value): array

Sanitize the one-to-many CDN mapping list.

ParameterTypeDefaultDescription
$valuearray—Raw mapping entries.

Return: array — Sanitized mapping.

Tags: @since 2.4.0 Moved from Util (REF-011); behavior unchanged.

Source: includes/Settings/class-settings-store.php, line 182

publicstatic sanitize_scalar_setting()

public static function sanitize_scalar_setting(string $safe_key, $value)

Sanitize a scalar settings value with the generic fallback rules.

ParameterTypeDefaultDescription
$safe_keystring—Sanitized key.
$valuemixed—Raw value.

Return: mixed — Sanitized value.

Tags: @since 2.4.0 Moved from Util (REF-011); behavior unchanged.

Source: includes/Settings/class-settings-store.php, line 275

publicstatic get_settings_sanitizer_map()

public static function get_settings_sanitizer_map(): array

Map of setting-tab slugs to their dedicated sanitizer methods.

Return: array<string,string> — Tab slug => sanitizer method name.

Tags: @since 2.4.0 Moved from Util (REF-011); behavior unchanged.

Source: includes/Settings/class-settings-store.php, line 308

publicstatic sanitize_cache_settings()

public static function sanitize_cache_settings($settings): array

Sanitize the `cache_settings` tab.

ParameterTypeDefaultDescription
$settingsarray—Raw tab settings.

Return: array — Sanitized tab settings.

Tags: @since 2.4.0 Moved from Util (REF-011); behavior unchanged.

Source: includes/Settings/class-settings-store.php, line 338

publicstatic sanitize_file_optimisation()

public static function sanitize_file_optimisation($settings): array

Sanitize the `file_optimisation` tab.

ParameterTypeDefaultDescription
$settingsarray—Raw tab settings.

Return: array — Sanitized tab settings.

Tags: @since 2.4.0 Moved from Util (REF-011); behavior unchanged.

Source: includes/Settings/class-settings-store.php, line 353

publicstatic sanitize_settings_recursively()

public static function sanitize_settings_recursively($settings)

Sanitizes the settings array recursively.

ParameterTypeDefaultDescription
$settingsarray—The settings array.

Return: array — The sanitized settings array.

Tags: @since 2.0.0 · @since 2.4.0 Moved from Util (REF-011); behavior unchanged.

Source: includes/Settings/class-settings-store.php, line 369

publicstatic get_default_settings()

public static function get_default_settings(): array

Get the canonical default settings structure.

Return: array<string, — array<string, mixed>> Default settings keyed by tab.

Tags: @since NEXT

Source: includes/Settings/class-settings-store.php, line 781

publicstatic get_resolved_settings()

public static function get_resolved_settings(): array

Get the effective options for the current blog.

Return: array — Effective settings for the current blog.

Tags: @since NEXT

Source: includes/Settings/class-settings-store.php, line 1032

publicstatic invalidate_resolved_settings()

public static function invalidate_resolved_settings(?int=null $blog_id): void

Invalidate one or all resolved-options memo entries.

ParameterTypeDefaultDescription
$blog_id?int=null—Optional blog ID.

Return: void.

Tags: @since NEXT

Source: includes/Settings/class-settings-store.php, line 1328

publicstatic current_blog_id()

public static function current_blog_id(): int

Resolve current blog ID safely (handles Brain Monkey stub mis-configuration in tests).

Return: int — Blog ID.

Tags: @since 2.4.0 · @since NEXT Public for Main\’s blog-aware options facade.

Source: includes/Settings/class-settings-store.php, line 1364

publicstatic get_settings()

public static function get_settings(): array

Get wppo_settings with per-request memoization.

Return: array — The plugin settings.

Tags: @since 2.4.0

Source: includes/Settings/class-settings-store.php, line 1387

publicstatic set_settings_cache()

public static function set_settings_cache(array $settings): void

Set the settings cache to a known value (e.g. after update_option in same request).

ParameterTypeDefaultDescription
$settingsarray—The settings to cache.

Return: void.

Tags: @since 2.4.0

Source: includes/Settings/class-settings-store.php, line 1409

publicstatic save_settings()

public static function save_settings(array $settings): bool

Persist wppo_settings with autoload disabled (audit #1325).

ParameterTypeDefaultDescription
$settingsarray—Settings array to store.

Return: bool — True on success (mirrors update_option()).

Tags: @since 2.4.0

Source: includes/Settings/class-settings-store.php, line 1428

publicstatic clear_settings_cache()

public static function clear_settings_cache(=null $blog_id): void

Clear the settings memo (e.g. in tests or on delete).

ParameterTypeDefaultDescription
$blog_id=null—Optional blog ID to clear. Null clears all.

Return: void.

Tags: @since 2.4.0

Source: includes/Settings/class-settings-store.php, line 1461

publicstatic on_switch_blog()

public static function on_switch_blog($new_blog_id, $prev_blog_id): void

Handler for switch_blog — settings side.

ParameterTypeDefaultDescription
$new_blog_idint—New blog ID.
$prev_blog_idint—Previous blog ID.

Return: void.

Tags: @since 2.4.0

Source: includes/Settings/class-settings-store.php, line 1493

publicstatic register_settings_cache_hooks()

public static function register_settings_cache_hooks(): void

Register the settings-cache invalidation hooks eagerly.

Return: void.

Tags: @since 2.4.0

Source: includes/Settings/class-settings-store.php, line 1519

privatestatic ensure_settings_cache_hook()

private static function ensure_settings_cache_hook(): void

Ensure the invalidation hooks for wppo_settings are registered once per request.

Return: void.

Tags: @since 2.4.0

Source: includes/Settings/class-settings-store.php, line 1529

publicstatic on_settings_update()

public static function on_settings_update($old_value, $value): void

Invalidate/update the memo when wppo_settings is updated.

ParameterTypeDefaultDescription
$old_valuemixed—Previous value.
$valuemixed—New value.

Return: void.

Tags: @since 2.4.0

Source: includes/Settings/class-settings-store.php, line 1548

publicstatic on_settings_add()

public static function on_settings_add($option, $value): void

Populate the memo when wppo_settings is added.

ParameterTypeDefaultDescription
$optionstring—Option name.
$valuemixed—Option value.

Return: void.

Tags: @since 2.4.0

Source: includes/Settings/class-settings-store.php, line 1563

publicstatic get_settings_snapshot()

public static function get_settings_snapshot(): ?array

Read the stored prior-settings snapshot.

Return: array|null — Snapshot array with `settings` + `taken_at` keys, or null when absent/malformed.

Tags: @since 2.4.0

Source: includes/Settings/class-settings-store.php, line 1578

publicstatic take_settings_snapshot()

public static function take_settings_snapshot(?array=null $settings): bool

Store the given settings as the one-click-undo snapshot.

ParameterTypeDefaultDescription
$settings?array=null—Settings to snapshot (defaults to the current stored settings).

Return: bool — True when the snapshot was written.

Tags: @since 2.4.0

Source: includes/Settings/class-settings-store.php, line 1604

publicstatic restore_settings_snapshot()

public static function restore_settings_snapshot(): ?array

Restore `wppo_settings` from the stored snapshot.

Return: array|null — The restored settings array, or null when no valid snapshot exists or the write failed.

Tags: @since 2.4.0

Source: includes/Settings/class-settings-store.php, line 1632

Hooks

Hooks referenced in includes/Settings/class-settings-store.php:

HookTypeLineNotes
wppo_cache_ttl_overridesfilter170@param ×1
wppo_cdn_mapping_maxfilter183@param ×1
wppo_cdn_mapping_entryfilter250@param ×1
wppo_cdn_mappingfilter260@param ×1