includes/Admin/class-rest.php
PerformanceOptimise\\Inc\\Rest
Class Rest
Registers REST API routes and handles requests for various performance optimization features.
class RestConstants
| Constant | Visibility | Value | Line |
|---|---|---|---|
NAMESPACE | public | \'performance-optimisation/v1\' | 34 |
Properties
| Property | Visibility | Type | Default | Line |
|---|---|---|---|---|
$cache_dir | private | string | — | 42 |
$rest_cache | private | Rest_Cache | — | 50 |
$rest_settings | private | Rest_Settings | — | 58 |
public __construct()
public function __construct()Constructor.
public rest_throttle_hit()
public function rest_throttle_hit(string $endpoint, int $limit, int $window): boolPer-endpoint throttle verdict for the ARCH-011 services. Parameter Type Default Description $endpointstring— Endpoint slug. $limitint— Max hits per window. $windowint— Window in seconds.
Return: bool — True when throttled.
public rest_send_response()
public function rest_send_response($data, =true $success, =200 $status_code, =null $message)Response envelope for the ARCH-011 services. Parameter Type Default Description $datamixed— The data to return in the response. $success=true— Indicates whether the request was successful. $status_code=200— The HTTP status code. $message=null— The response message.
Return: \\WP_REST_Response — The response object.
public rest_cache_dir()
public function rest_cache_dir(): stringCache directory for the ARCH-011 cache service.
Return: string — Cache directory path.
public register_routes()
public function register_routes()Registers the REST API routes.
private get_routes()
private function get_routes()Provide the REST route definitions used when registering this class\’s endpoints.
Return: array<string, — array> Associative array of route slugs to route configuration arrays.
public get_autoloaded_options()
public function get_autoloaded_options(\\WP_REST_Request $request): \\WP_REST_ResponseList the largest autoloaded options. Parameter Type Default Description $request\\WP_REST_Request— The request object.
Return: \\WP_REST_Response — The response object.
public handle_autoload_remediate()
public function handle_autoload_remediate(\\WP_REST_Request $request): \\WP_REST_ResponseHandle one-click autoload-bloat remediation (dry run, apply, revert, revert_all). Parameter Type Default Description $request\\WP_REST_Request— The request object.
Return: \\WP_REST_Response — The response object.
public export_expired_transients()
public function export_expired_transients(\\WP_REST_Request $request): \\WP_REST_ResponseExport expired transients for pre-run review (read-only, expired rows only). Parameter Type Default Description $request\\WP_REST_Request— The request object.
Return: \\WP_REST_Response — The response object.
public collect_rum()
public function collect_rum(\\WP_REST_Request $request): \\WP_REST_ResponseHandle a real-user Web Vitals beacon. Parameter Type Default Description $request\\WP_REST_Request— The request object.
Return: \\WP_REST_Response — The response object.
public get_rum_data()
public function get_rum_data(\\WP_REST_Request $request): \\WP_REST_ResponseRetrieve aggregated real-user Web Vitals for the dashboard. Parameter Type Default Description $request\\WP_REST_Request— The request object.
Return: \\WP_REST_Response — The response object.
public get_preload_status()
public function get_preload_status(\\WP_REST_Request $request): \\WP_REST_ResponseResumable sitemap preload progress plus bounded-cache cap status. Parameter Type Default Description $request\\WP_REST_Request— The request object.
Return: \\WP_REST_Response — The response object. Facade proxy (ARCH-011): logic lives in {@see Rest_Cache::get_preload_status}.
public get_lcp_preload_candidate()
public function get_lcp_preload_candidate(\\WP_REST_Request $request): \\WP_REST_ResponseRetrieve the single LCP preload candidate for the settings UI. Parameter Type Default Description $request\\WP_REST_Request— The request object.
Return: \\WP_REST_Response — The response object.
public resume_preload()
public function resume_preload(\\WP_REST_Request $request): \\WP_REST_ResponseResume the sitemap preload queue (re-schedule queued + failed URLs). Parameter Type Default Description $request\\WP_REST_Request— The request object.
Return: \\WP_REST_Response — The response object. Facade proxy (ARCH-011): logic lives in {@see Rest_Cache::resume_preload}.
private is_image_candidate_url()
private function is_image_candidate_url(string $url): boolWhether a candidate URL is a plausible LCP image (text-LCP guard). Parameter Type Default Description $urlstring— The candidate URL.
Return: bool — True when the URL may be preloaded as an image.
private is_same_origin_candidate_url()
private function is_same_origin_candidate_url(string $url): boolWhether a REST LCP candidate URL is same-origin with this site. Parameter Type Default Description $urlstring— The candidate URL.
Return: bool — True when the URL may surface as a candidate.
public get_schema_for_route()
public function get_schema_for_route(): arrayReturns the JSON schema for a given REST route.
Return: array — The JSON schema definition.
public permission_callback()
public function permission_callback(?\\WP_REST_Request=null $request): boolChecks if the user has permission to access the route. Parameter Type Default Description $request?\\WP_REST_Request=null— The REST request object.
Return: bool — True if the user has permission, false otherwise.
privatestatic static_throttle_hit()
private static function static_throttle_hit(string $endpoint, int $limit, int $window): boolPer-request static throttle buckets (audit #1453). Parameter Type Default Description $endpointstring— Endpoint slug. $limitint— Max hits per window. $windowint— Window in seconds.
Return: bool — True when throttled.
private is_endpoint_throttled()
private function is_endpoint_throttled(string $endpoint, int=10 $limit, int=60 $window): boolPer-endpoint transient throttle for heavy admin endpoints. Parameter Type Default Description $endpointstring— Endpoint slug. $limitint=10— Max hits per window. $windowint=60— Window in seconds.
Return: bool — True when throttled.
privatestatic throttle_client_suffix()
private static function throttle_client_suffix(): stringClient suffix for the anonymous endpoint-throttle bucket.
Return: string — Anon throttle suffix.
private is_same_site_url()
private function is_same_site_url(string $url): boolSame-site URL gate shared by readers and writers. Parameter Type Default Description $urlstring— URL to check.
Return: bool.
public clear_cache()
public function clear_cache(\\WP_REST_Request $request)Clears the cache based on the given action. Parameter Type Default Description $request\\WP_REST_Request— The request object.
Return: \\WP_REST_Response — The response object. Facade proxy (ARCH-011): logic lives in {@see Rest_Cache::clear_cache}.
public update_settings()
public function update_settings(\\WP_REST_Request $request)Updates the settings for the plugin. Parameter Type Default Description $request\\WP_REST_Request— The request object.
Return: \\WP_REST_Response — The response object. Facade proxy (ARCH-011): logic lives in {@see Rest_Settings::update_settings}.
private sanitize_settings_recursively()
private function sanitize_settings_recursively(array $settings): arraySanitizes the settings array recursively. Parameter Type Default Description $settingsarray— The settings array.
Return: array — The sanitized settings array.
private remove_sensitive_settings_from_response()
private function remove_sensitive_settings_from_response(array& $settings): voidRemoves sensitive settings from the response array. Parameter Type Default Description $settingsarray&— The settings array passed by reference.
Return: void.
public get_recent_activities()
public function get_recent_activities(\\WP_REST_Request $request)Retrieves the recent activities. Parameter Type Default Description $request\\WP_REST_Request— The request object.
Return: \\WP_REST_Response — The response object.
private resolve_optimise_source_path()
private function resolve_optimise_source_path(string $img_path, string $normalized_abspath): stringResolve a client- or DB-supplied image path to an absolute source path. Parameter Type Default Description $img_pathstring— Raw path from the request or DB queue. $normalized_abspathstring— Trailingslashed `ABSPATH`.
Return: string — Absolute candidate source path.
public optimise_image()
public function optimise_image(\\WP_REST_Request $request)Optimizes the images and converts them to WebP or AVIF format. Parameter Type Default Description $request\\WP_REST_Request— The request object.
Return: \\WP_REST_Response — The response object.
public delete_optimised_image()
public function delete_optimised_image(): \\WP_REST_ResponseDeletes the optimized images from the filesystem.
Return: \\WP_REST_Response — The response object.
public import_settings()
public function import_settings(\\WP_REST_Request $request)Imports settings via the REST API. Parameter Type Default Description $request\\WP_REST_Request— The request object.
Return: \\WP_REST_Response — The response object. Facade proxy (ARCH-011): logic lives in {@see Rest_Settings::import_settings}.
public get_settings_snapshot()
public function get_settings_snapshot(\\WP_REST_Request $request): \\WP_REST_ResponseReport whether a prior-settings snapshot exists for one-click undo. Parameter Type Default Description $request\\WP_REST_Request— The request object.
Return: \\WP_REST_Response — The response object.
public restore_settings()
public function restore_settings(\\WP_REST_Request $request): \\WP_REST_ResponseRestore `wppo_settings` from the prior-settings snapshot (one-click undo). Parameter Type Default Description $request\\WP_REST_Request— The request object.
Return: \\WP_REST_Response — The response object.
public get_optimization_presets()
public function get_optimization_presets(\\WP_REST_Request $request): \\WP_REST_ResponseList the Safe / Balanced / Aggressive preset definitions plus the diff preview of each against the current settings. Parameter Type Default Description $request\\WP_REST_Request— The request object.
Return: \\WP_REST_Response — The response object.
public apply_optimization_preset()
public function apply_optimization_preset(\\WP_REST_Request $request): \\WP_REST_ResponseApply a Safe / Balanced / Aggressive preset in one click. Parameter Type Default Description $request\\WP_REST_Request— The request object.
Return: \\WP_REST_Response — The response object.
public database_cleanup()
public function database_cleanup(\\WP_REST_Request $request)Perform database cleanup for the requested cleanup type. Parameter Type Default Description $request\\WP_REST_Request— REST request containing the `type` parameter.
Return: \\WP_REST_Response — On success: – For `all`: response with `results` (per-cleanup results) and `deleted` (total deleted). – For specific types: response with `type` and `deleted` (number deleted). On invalid `type`: 400 response with an error message. On partial or total failure when `type` is `all`: 500 response with `failures` and `deleted`. On failure of a specific cleanup method: 500 response with the error message.
public get_database_cleanup_counts()
public function get_database_cleanup_counts(\\WP_REST_Request $_request)Returns counts for all database cleanup types. Parameter Type Default Description $_request\\WP_REST_Request— The request object.
Return: \\WP_REST_Response — The response object.
public get_image_job_status()
public function get_image_job_status(\\WP_REST_Request $_request)Returns the status of background image optimization jobs. Parameter Type Default Description $_request\\WP_REST_Request— The request object.
Return: \\WP_REST_Response — The response object.
public handle_object_cache()
public function handle_object_cache(\\WP_REST_Request $request)Handles object cache requests (status, ping, enable, disable, flush). Parameter Type Default Description $request\\WP_REST_Request— The request object.
Return: \\WP_REST_Response — The response object.
private build_redis_config()
private function build_redis_config($params, =array() $defaults)Builds a sanitized Redis configuration array from request parameters. Parameter Type Default Description $paramsarray— Request parameters. $defaults=array()— Optional stored config (e.g. from Object_Cache::get_redis_config()) filling keys the request does not explicitly carry. Defaults to array() (historic behaviour: hardcoded host/port/mode fallbacks).
Return: array — Sanitized Redis config.
private sanitize_redis_config_value()
private function sanitize_redis_config_value($key, $value)Sanitize a single Redis configuration value by key. Parameter Type Default Description $keystring— Config key (one of the build_redis_config() allowlist). $valuemixed— Raw value.
Return: mixed — Sanitized value.
private sanitize_nodes()
private function sanitize_nodes($nodes)Normalize and sanitize Redis node entries into an indexed array of non-empty strings. Parameter Type Default Description $nodesstring|array— Node or list of nodes to sanitize and normalize.
Return: string[] — An indexed array of sanitized, non-empty node strings.
private sanitize_flush_error()
private function sanitize_flush_error($error): \\WP_ErrorStrip local paths from a flush WP_Error before REST surfacing. Parameter Type Default Description $error\\WP_Error— Failing result.
Return: \\WP_Error — Sanitized clone (same code, scrubbed message and data).
private scrub_flush_error_data()
private function scrub_flush_error_data($data)Recursively strip local paths from flush error data. Parameter Type Default Description $datamixed— Raw error data.
Return: mixed — Scrubbed error data.
private redis_error_payload()
private function redis_error_payload($error, string=\'error\' $notice): arrayBuild a useNotice-compatible error payload for Redis failures. Parameter Type Default Description $error\\WP_Error— Failing result. $noticestring=\'error\'— Notice severity: \’error\’, \’warning\’, \’info\’.
Return: array — Shape { code: string, notice: array{ type: string, message: string } }.
public ajax_get_nonce()
public function ajax_get_nonce()Refreshes the REST API nonce via AJAX to bypass stale X-WP-Nonce issues.
Return: void.
public get_system_info()
public function get_system_info(\\WP_REST_Request $_request): \\WP_REST_ResponseReturns all system information groups (PHP, DB, WordPress, server, cache). Parameter Type Default Description $_request\\WP_REST_Request— The request object (unused).
Return: \\WP_REST_Response — The response object.
public run_performance_scan()
public function run_performance_scan(\\WP_REST_Request $request): \\WP_REST_ResponseRuns a local telemetry scan on the provided URL. Parameter Type Default Description $request\\WP_REST_Request— The request object.
Return: \\WP_REST_Response — The response object.
public queue_pagespeed_scan()
public function queue_pagespeed_scan(\\WP_REST_Request $request): \\WP_REST_ResponseQueues a Google PageSpeed Insights scan as a background Action Scheduler job. Parameter Type Default Description $request\\WP_REST_Request— The request object.
Return: \\WP_REST_Response — The response object.
public get_pagespeed_results()
public function get_pagespeed_results(\\WP_REST_Request $request): \\WP_REST_ResponseReturns cached PageSpeed Insights results for a URL and strategy. Parameter Type Default Description $request\\WP_REST_Request— The request object.
Return: \\WP_REST_Response — The response object.
public get_web_vitals_trends()
public function get_web_vitals_trends(\\WP_REST_Request $request): \\WP_REST_ResponseReturns the stored Web Vitals trend history. Parameter Type Default Description $request\\WP_REST_Request— The request object.
Return: \\WP_REST_Response — The response object.
public get_suggestions()
public function get_suggestions(\\WP_REST_Request $request): \\WP_REST_ResponseReturns Suggestion_Engine output for a given telemetry scan result. Parameter Type Default Description $request\\WP_REST_Request— The request object.
Return: \\WP_REST_Response — The response object.
private get_rum_next_action()
private function get_rum_next_action(): ?arrayPick the single RUM-driven guided next action.
Return: array|null — Single suggestion object, or null.
private get_detected_server_type()
private function get_detected_server_type(): stringDetect the current server software for the guided next-step note.
Return: string — \’apache\’, \’nginx\’, \’litespeed\’, or \’other\’.
public get_woo_cache_self_test()
public function get_woo_cache_self_test(\\WP_REST_Request $_request): \\WP_REST_ResponseVerifiable WooCommerce cart/checkout cache-exclusion self-test (read-only). Parameter Type Default Description $_request\\WP_REST_Request— The request object (unused).
Return: \\WP_REST_Response — The response object.
public used_css_regenerate()
public function used_css_regenerate(\\WP_REST_Request $request): \\WP_REST_ResponseRegenerate used-CSS for all pages or a single post. Parameter Type Default Description $request\\WP_REST_Request— The request object.
Return: \\WP_REST_Response — The response object.
private handle_used_css_rollout_action()
private function handle_used_css_rollout_action(string $action, int $post_id): \\WP_REST_ResponseHandle a used-CSS safe-rollout action for a single post (issue #1348). Parameter Type Default Description $actionstring— One of dry_run|promote|rollback|health. $post_idint— Validated post ID.
Return: \\WP_REST_Response — The response object.
private handle_ccss_rollout_action()
private function handle_ccss_rollout_action(string $action, string $template, $templates_map): \\WP_REST_ResponseHandle a critical-CSS safe-rollout action for a template (issue #1348). Parameter Type Default Description $actionstring— One of dry_run|promote|rollback|health. $templatestring— Validated template slug or hash. $templates_maparray|null— Optional template map (avoids a second theme scan).
Return: \\WP_REST_Response — The response object.
public purge_used_css_cache()
public function purge_used_css_cache(\\WP_REST_Request $request): \\WP_REST_ResponsePurge page cache and used CSS together via a single action (issue #1023). Parameter Type Default Description $request\\WP_REST_Request— The request object.
Return: \\WP_REST_Response — The response object.
public purge_derived_caches()
public function purge_derived_caches(\\WP_REST_Request $_request): \\WP_REST_ResponseManually purge all derived caches (page cache + used-CSS + critical-CSS). Parameter Type Default Description $_request\\WP_REST_Request— The request object (unused).
Return: \\WP_REST_Response — The response object.
public get_upgrade_purge_status()
public function get_upgrade_purge_status(\\WP_REST_Request $_request): \\WP_REST_ResponseSPA-visible upgrade-purge status: last-purge reason + safe-mode preview link. Parameter Type Default Description $_request\\WP_REST_Request— The request object (unused).
Return: \\WP_REST_Response — The response object.
public get_server_rules()
public function get_server_rules(\\WP_REST_Request $_request): \\WP_REST_ResponseReturns server-level performance rules (Apache/Nginx). Parameter Type Default Description $_request\\WP_REST_Request— The request object (unused).
Return: \\WP_REST_Response — The response object.
public regenerate_ccss()
public function regenerate_ccss(\\WP_REST_Request $_request): \\WP_REST_ResponseRegenerate critical CSS for all templates. Parameter Type Default Description $_request\\WP_REST_Request— The request object.
Return: \\WP_REST_Response — The response object.
public get_ccss_status()
public function get_ccss_status(\\WP_REST_Request $_request): \\WP_REST_ResponseGet critical CSS status per template. Parameter Type Default Description $_request\\WP_REST_Request— The request object.
Return: \\WP_REST_Response — The response object.
public get_used_css_status()
public function get_used_css_status(\\WP_REST_Request $request): \\WP_REST_ResponseGet used-CSS staleness status (issue #1220). Parameter Type Default Description $request\\WP_REST_Request— The request object.
Return: \\WP_REST_Response — The response object.
public get_ai_model()
public function get_ai_model(\\WP_REST_Request $_request): \\WP_REST_ResponseGet AI adaptive model. Parameter Type Default Description $_request\\WP_REST_Request— The request object.
Return: \\WP_REST_Response — The response object.
public ai_learn()
public function ai_learn(\\WP_REST_Request $_request): \\WP_REST_ResponseTrigger AI learning. Parameter Type Default Description $_request\\WP_REST_Request— The request object.
Return: \\WP_REST_Response — The response object.
public get_ai_suggestions()
public function get_ai_suggestions(\\WP_REST_Request $_request): \\WP_REST_ResponseGet AI suggestions. Parameter Type Default Description $_request\\WP_REST_Request— The request object.
Return: \\WP_REST_Response — The response object.
public get_sandbox_preview()
public function get_sandbox_preview(\\WP_REST_Request $_request): \\WP_REST_ResponseGet sandbox preview status (issue #1163). Parameter Type Default Description $_request\\WP_REST_Request— The request object.
Return: \\WP_REST_Response — The response object.
public save_sandbox_preview()
public function save_sandbox_preview(\\WP_REST_Request $request): \\WP_REST_ResponseSave staged sandbox settings (issue #1163). Parameter Type Default Description $request\\WP_REST_Request— The request object.
Return: \\WP_REST_Response — The response object.
public promote_sandbox_preview()
public function promote_sandbox_preview(\\WP_REST_Request $_request): \\WP_REST_ResponsePromote staged sandbox settings to production (issue #1163). Parameter Type Default Description $_request\\WP_REST_Request— The request object.
Return: \\WP_REST_Response — The response object.
public discard_sandbox_preview()
public function discard_sandbox_preview(\\WP_REST_Request $_request): \\WP_REST_ResponseDiscard staged sandbox settings (issue #1163). Parameter Type Default Description $_request\\WP_REST_Request— The request object.
Return: \\WP_REST_Response — The response object.
public detect_safe_mode_excludes()
public function detect_safe_mode_excludes(\\WP_REST_Request $_request): \\WP_REST_ResponseAuto-exclude detector for the minify/combine/defer stack (issue #1465). Parameter Type Default Description $_request\\WP_REST_Request— The request object. Optional `handles` param for accuracy.
Return: \\WP_REST_Response — The response object.
public handle_safe_mode()
public function handle_safe_mode(\\WP_REST_Request $request): \\WP_REST_ResponseOne-click safe mode for the minify/combine/defer stack (issue #1465). Parameter Type Default Description $request\\WP_REST_Request— The request object.
Return: \\WP_REST_Response — The response object.
public dismiss_welcome()
public function dismiss_welcome(?\\WP_REST_Request=null $request): \\WP_REST_ResponseDismisses the welcome panel for the current user. Parameter Type Default Description $request?\\WP_REST_Request=null— The request object (unused; present for route-callback signature parity).
Return: \\WP_REST_Response — The response object.
private send_response()
private function send_response($data, =true $success, =200 $status_code, =null $message)Sends a REST API response. Parameter Type Default Description $datamixed— The data to return in the response. $success=true— Indicates whether the request was successful. $status_code=200— The HTTP status code. $message=null— The response message.
Return: \\WP_REST_Response — The response object.
Hooks
Hooks referenced in includes/Admin/class-rest.php: Hook Type Line Notes wppo_optimise_image_capfilter 1262 —