=== Simple Page Cache === Contributors: peterarends Tags: cache, performance, static, woocommerce, edd Requires at least: 5.0 Tested up to: 6.8 Stable tag: 1.0.1 License: GPLv2 or later Simple, blazing fast static page cache for WordPress. Caches HTML for non-logged-in users and auto-detects dynamic shop pages. == Description == **Simple Page Cache** is an extremely simple, super-fast page cache for WordPress. The plugin stores full HTML pages on disk for non-logged-in visitors. There is no expiry: the cache is only cleared by manual action. Ideal for small to medium-sized sites and webshops that want maximum speed without complex settings. **Main features:** - Caching for non-logged-in users (GET requests only) - Cache files are stored in `/wp-content/cache/simple-page-cache/` - Drop-in (`advanced-cache.php`) for maximum speed before WordPress loads - Automatic detection of dynamic pages (cart, checkout, account, wishlist) for: - WooCommerce - BigCommerce for WordPress - Easy Digital Downloads - iThemes Exchange - Jigoshop - WP-Shop - Detected dynamic pages are automatically excluded from caching - Manual cache clearing via admin bar button - No complex settings, no database writes == Installation == 1. Upload the plugin to the `/wp-content/plugins/simple-page-cache/` directory. 2. Activate the plugin through the WordPress plugins screen. 3. Upon activation: - The cache directory is created (`/wp-content/cache/simple-page-cache/`). - The drop-in `advanced-cache.php` is placed in `/wp-content/`. - `define('WP_CACHE', true);` is automatically added to `wp-config.php` (or replaced if it already exists). == How it works == - For every non-logged-in visitor and every GET request, a static HTML file is created and served. - Pages with characteristics of dynamic e-commerce pages (such as cart, checkout, account, wishlist) are automatically detected and excluded from caching. The plugin recognizes WooCommerce, BigCommerce, Easy Digital Downloads, iThemes Exchange, Jigoshop, and WP-Shop. - The list of excluded pages is automatically maintained in a file in the cache directory. == Clearing the cache == - Click the "Clear Page Cache" button in the admin bar (visible to administrators only) to remove all cache files. == Deactivation == - When deactivating the plugin: - The drop-in `advanced-cache.php` is removed. - The `define('WP_CACHE', true);` line (if placed by this plugin) is removed from `wp-config.php`. == Frequently Asked Questions == = Are pages automatically removed from the cache? = No, only manually via the admin bar button. = Can I manually exclude pages? = The plugin automatically detects most dynamic e-commerce pages. Manual exclusion is not possible without editing code. = Does this work with other cache plugins? = Always use only one page cache plugin/drop-in at a time. == Changelog == = 1.0.2 = * Enhanced caching logic with HTTP status code validation * Skip caching for redirects (3xx status codes) * Skip caching for most error responses (except 403 and 404) * Skip caching for pages smaller than 1KB (likely empty/error pages) * Added automatic drop-in regeneration after plugin updates * Implemented secure random filename for settings file (unguessable) * Improved version tracking and update detection * Updated tested up to WordPress 6.8 = 1.0.1 = * Bug fixes and improvements = 1.0.0 = * First release: simple page cache with automatic e-commerce detection.