PluginProbe
xSpeed Cache: AI-Powered Performance Hub with MCP, Caching & CDN / 1.3.6
xSpeed Cache: AI-Powered Performance Hub with MCP, Caching & CDN v1.3.6
1.3.6 1.3.5 1.3.4 1.3.3 1.3.2 1.3.1 1.3.0 1.2.4 trunk 1.0.0 1.0.1 1.0.2 1.0.3 1.0.4 1.0.5 1.0.6 1.0.7 1.0.8 1.0.9 1.1.0 1.1.1 1.1.2 1.1.3 1.1.4 1.1.5 All 32 releases
← All changes | includes/class-plugin.php +13 -11 1.3.4 → 1.3.6 View file →
@@ -93,17 +93,18 @@
93 93 // Integrations that clear OTHER plugins' caches of rendered output
94 94 // (Elementor's element cache + generated CSS). Registers a listener
95 95 // only; nothing runs until Cache::purge_render_caches() asks.
96 96 Render_Caches::boot();
97 - // Server_Caches needs no boot(): Cache::dispatch_purge_event() calls it
98 - // directly so a throwing third-party listener cannot skip it.
97 + // Forwarding needs no boot(): Cache::dispatch_purge_event() calls
98 + // Server_Caches::forward() directly so a throwing third-party listener
99 + // cannot skip it. Both built-in server-cache adapters live behind it —
100 + // LiteSpeed, and the nginx FastCGI cache reached through the host's
101 + // Nginx Helper install (Host_Page_Caches), which is why neither is
102 + // booted here. This boot() registers one listener only: the single
103 + // purge that runs after an import, which the nginx adapter's import
104 + // gate stands down in favour of.
105 + Server_Caches::boot();
99 106
100 - // Forward a full purge to a full-page cache owned by the WEB SERVER
101 - // (nginx FastCGI, via the host's Nginx Helper install). Registers a
102 - // listener on xspeed_after_purge_all only; it stands down unless
103 - // that cache is actually configured.
104 - Host_Page_Caches::boot();
105 -
106 107 // Register Free modules via the same action xspeed-pro uses, so
107 108 // the bootstrap path is symmetric across tiers.
108 109 add_action( 'xspeed_register_modules', array( $this, 'register_free_modules' ) );
109 110
@@ -268,9 +269,9 @@
268 269 // cache-coverage features (404 / search / feed / REST / rules /
269 270 // maintenance) into one sidebar sub-item (FBS-83633).
270 271 Module_Registry::register( new \XSpeed\Modules\CacheCoverage\CacheCoverageModule() );
271 272 Module_Registry::register( new \XSpeed\Modules\Fonts\FontsModule() );
272 - Module_Registry::register( new \XSpeed\Modules\RenderSkip\RenderSkipModule() );
273 + Module_Registry::register( new \XSpeed\Modules\TurboRender\TurboRenderModule() );
273 274 Module_Registry::register( new \XSpeed\Modules\ResourceHints\ResourceHintsModule() );
274 275 // AI Privacy (GDPR off-switch) ships in Free even though every AI
275 276 // *feature* is Pro — privacy is a right, not a paid tier. FEATURES.md
276 277 // §AI row 6 mandates it. Without this registration the module was dead
@@ -307,10 +308,11 @@
307 308 public function start_plugin_tracking(): void {
308 309 $this->usage_tracker = Usage_Tracker::get_instance(
309 310 XSPEED_FILE,
310 311 array(
311 - 'opt_in' => true,
312 - 'item_id' => defined( 'XSPEED_INSIGHTS_ITEM_ID' ) ? XSPEED_INSIGHTS_ITEM_ID : false,
312 + 'opt_in' => true,
313 + 'email_marketing' => true,
314 + 'item_id' => defined( 'XSPEED_INSIGHTS_ITEM_ID' ) ? XSPEED_INSIGHTS_ITEM_ID : false,
313 315 )
314 316 );
315 317 $this->usage_tracker->init();
316 318 }