includes/Settings/class-settings-store.php
Settings store boundary — wppo_settings memo, writes, hook coherence, snapshots, schema allowlist, and settings sanitization.
Class Settings_Store
Class Settings_Store
final class Settings_StoreConstants
| Constant | Visibility | Value | Line |
|---|---|---|---|
SETTINGS_SNAPSHOT_OPTION | public | \'wppo_settings_snapshot\' | 67 |
ALLOWED_SETTINGS_KEYS | public | array( \'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_TABS | public | self::ALLOWED_SETTINGS_KEYS | 109 |
Properties
| Property | Visibility | Type | Default | Line |
|---|---|---|---|---|
$resolved_settings_cache | private static | array | array() | 1011 |
$resolved_settings_cache_loaded | private static | array | array() | 1019 |
$settings_cache | private static | array | array() | 1345 |
$settings_cache_loaded | private static | array | array() | 1353 |
publicstatic get_allowed_settings_keys()
public static function get_allowed_settings_keys(): arrayGet the allowlisted top-level settings keys.
Return: string[].
publicstatic sanitize_mode_value()
public static function sanitize_mode_value($value): stringSanitize the LiteSpeed integration `mode` value against its allowlist. Parameter Type Default Description $valuemixed— Raw value.
Return: string — Allowlisted mode (\’auto\’ fallback).
publicstatic sanitize_ttl_overrides()
public static function sanitize_ttl_overrides($value): arraySanitize per-post-type cache TTL overrides. Parameter Type Default Description $valuearray— Raw overrides.
Return: array — Sanitized overrides.
publicstatic sanitize_cdn_mapping()
public static function sanitize_cdn_mapping($value): arraySanitize the one-to-many CDN mapping list. Parameter Type Default Description $valuearray— Raw mapping entries.
Return: array — Sanitized mapping.
publicstatic sanitize_scalar_setting()
public static function sanitize_scalar_setting(string $safe_key, $value)Sanitize a scalar settings value with the generic fallback rules. Parameter Type Default Description $safe_keystring— Sanitized key. $valuemixed— Raw value.
Return: mixed — Sanitized value.
publicstatic get_settings_sanitizer_map()
public static function get_settings_sanitizer_map(): arrayMap of setting-tab slugs to their dedicated sanitizer methods.
Return: array<string,string> — Tab slug => sanitizer method name.
publicstatic sanitize_cache_settings()
public static function sanitize_cache_settings($settings): arraySanitize the `cache_settings` tab. Parameter Type Default Description $settingsarray— Raw tab settings.
Return: array — Sanitized tab settings.
publicstatic sanitize_file_optimisation()
public static function sanitize_file_optimisation($settings): arraySanitize the `file_optimisation` tab. Parameter Type Default Description $settingsarray— Raw tab settings.
Return: array — Sanitized tab settings.
publicstatic sanitize_settings_recursively()
public static function sanitize_settings_recursively($settings)Sanitizes the settings array recursively. Parameter Type Default Description $settingsarray— The settings array.
Return: array — The sanitized settings array.
publicstatic get_default_settings()
public static function get_default_settings(): arrayGet the canonical default settings structure.
Return: array<string, — array<string, mixed>> Default settings keyed by tab.
publicstatic get_resolved_settings()
public static function get_resolved_settings(): arrayGet the effective options for the current blog.
Return: array — Effective settings for the current blog.
publicstatic invalidate_resolved_settings()
public static function invalidate_resolved_settings(?int=null $blog_id): voidInvalidate one or all resolved-options memo entries. Parameter Type Default Description $blog_id?int=null— Optional blog ID.
Return: void.
publicstatic current_blog_id()
public static function current_blog_id(): intResolve current blog ID safely (handles Brain Monkey stub mis-configuration in tests).
Return: int — Blog ID.
publicstatic get_settings()
public static function get_settings(): arrayGet wppo_settings with per-request memoization.
Return: array — The plugin settings.
publicstatic set_settings_cache()
public static function set_settings_cache(array $settings): voidSet the settings cache to a known value (e.g. after update_option in same request). Parameter Type Default Description $settingsarray— The settings to cache.
Return: void.
publicstatic save_settings()
public static function save_settings(array $settings): boolPersist wppo_settings with autoload disabled (audit #1325). Parameter Type Default Description $settingsarray— Settings array to store.
Return: bool — True on success (mirrors update_option()).
publicstatic clear_settings_cache()
public static function clear_settings_cache(=null $blog_id): voidClear the settings memo (e.g. in tests or on delete). Parameter Type Default Description $blog_id=null— Optional blog ID to clear. Null clears all.
Return: void.
publicstatic on_switch_blog()
public static function on_switch_blog($new_blog_id, $prev_blog_id): voidHandler for switch_blog — settings side. Parameter Type Default Description $new_blog_idint— New blog ID. $prev_blog_idint— Previous blog ID.
Return: void.
publicstatic register_settings_cache_hooks()
public static function register_settings_cache_hooks(): voidRegister the settings-cache invalidation hooks eagerly.
Return: void.
privatestatic ensure_settings_cache_hook()
private static function ensure_settings_cache_hook(): voidEnsure the invalidation hooks for wppo_settings are registered once per request.
Return: void.
publicstatic on_settings_update()
public static function on_settings_update($old_value, $value): voidInvalidate/update the memo when wppo_settings is updated. Parameter Type Default Description $old_valuemixed— Previous value. $valuemixed— New value.
Return: void.
publicstatic on_settings_add()
public static function on_settings_add($option, $value): voidPopulate the memo when wppo_settings is added. Parameter Type Default Description $optionstring— Option name. $valuemixed— Option value.
Return: void.
publicstatic get_settings_snapshot()
public static function get_settings_snapshot(): ?arrayRead the stored prior-settings snapshot.
Return: array|null — Snapshot array with `settings` + `taken_at` keys, or null when absent/malformed.
publicstatic take_settings_snapshot()
public static function take_settings_snapshot(?array=null $settings): boolStore the given settings as the one-click-undo snapshot. Parameter Type Default Description $settings?array=null— Settings to snapshot (defaults to the current stored settings).
Return: bool — True when the snapshot was written.
publicstatic restore_settings_snapshot()
public static function restore_settings_snapshot(): ?arrayRestore `wppo_settings` from the stored snapshot.
Return: array|null — The restored settings array, or null when no valid snapshot exists or the write failed.
Hooks
Hooks referenced in includes/Settings/class-settings-store.php: Hook Type Line Notes wppo_cache_ttl_overridesfilter 170 @param ×1 wppo_cdn_mapping_maxfilter 183 @param ×1 wppo_cdn_mapping_entryfilter 250 @param ×1 wppo_cdn_mappingfilter 260 @param ×1