== Changelog == = 2.4.2 = * Fixed: Enhanced security measures to prevent unauthorized access to cached content. = 2.4.1 = * Created changelog.txt and moved the complete changelog history to it. = 2.4.0 = * Fixed: Cache clearing during bulk plugin updates from 3rd-party tools like WP-Manager. * Fixed: Corrected the post revisions count displayed under the Database options tab. * Fixed: Improved compatibility with Polylang to ensure cache is properly purged for respective language versions. * Fixed: Password-protected pages now prompt for a password instead of being served from cache. * Added: Ability to programmatically clear cache for a specific post. * Added: One-Click Optimization feature to quickly apply recommended cache and performance settings. * Improved: Cache handling updated so query strings no longer create separate cache files. * Improved: Enhanced security by restricting the “Clear Cache” option for specific posts from users with limited WordPress permissions. = 2.3.1 = * Fix: Varnish purge success notice now shows the correct message instead of an empty notice. = 2.3.0 = * Fix: URLs excluded from cache that contain hash (#) fragments are now correctly skipped during preload. * Fix: Modified regex to better fetch images through CSS classes. * Fix: Corrected warnings and errors to follow WordPress coding rules. * Fix: Resolved SyntaxError occurring when the native lazyload option is enabled. * Fix: Resolved a "Double-Compression" conflict on WordPress Multisite environments using Varnish. Breeze now detects the X-Varnish header and intelligently bypasses PHP-level Gzip to prevent malformed HTML streams. * Fix: Prevented redundant Cloudflare cache purge requests from triggering multiple times during a single post update. * Fix: Resolved an issue where the "Preload Links" feature caused WooCommerce cart items to be removed automatically upon hovering over the "Remove" button. * Fix: Improved screen detection logic for the Breeze back‑end CSS file, ensuring it loads correctly in all relevant admin contexts. * Fix: Removed the multisite sub‑site limit. The system previously enforced a default maximum of 100 sub‑sites. * Improved: Refined .htaccess rule syntax and underlying logic. In certain rare cases, the previous implementation could trigger a 500 server error. * Improved: Optimized performance for post updates and WooCommerce order processing by offloading Cloudflare cache purges to a background cron job. * Added: Control PHP Gzip compression programmatically with breeze_should_gzip_output filter * Added: Introduced breeze_cf_purge_type_on_post_update and breeze_cf_purge_type_on_order_update filters to programmatically toggle between background (cron) and synchronous (default) purging. * Added: Introduced the breeze_purge_post_cache_urls filter, allowing developers to programmatically add extra URLs to the purge queue. When using this filter, ensure all custom URLs are returned with a trailing slash (/). = 2.2.24 = * Improved: Added caching for database queries to enhance performance and reduce database load. * Fix: Resolved WordPress Coding Standards warnings and errors = 2.2.23 = * Fix: Plugin name now complies with WordPress plugin directory guidelines. * Fix: API keys with insufficient strength are now rejected, and a visual strength indicator is shown to guide users. * Fix: The cache‑clearing API now validates API keys only when provided via the 'Authorization: Bearer <•••key•••>' header. * Fix: Enhanced security measures applied to the clear‑cache API endpoint. = 2.2.22 = * Fix: Improved security by addressing a low-priority issue. = 2.2.21 = * Improved: Simplified CSS and JS cache file names with version-based identification for easier management. = 2.2.20 = * Improved: Added proper verification process for Varnish cache purge. * Improved: Updated CSS minification library and refined CSS cleaning rules for better optimization. * Added: Cloudflare cache now automatically purges when the "Clear Cache" action is triggered from post edit links. = 2.2.19 = * Fixed: Video lazy loading conflicts by ensuring compatibility with native lazy load and excluding WordPress [video] short codes from lazy loading. * Improved: File and folder permission handling logic – missing file/folder checks will no longer appear when the cache system is disabled. = 2.2.18 = * Improved: Security handling for JavaScript fetch and XHR requests to ensure safer data communication. * Added: Lazy Load library instance is now available on the window object for users with custom setups. * Improved: Purge Cron Job now also clears Cloudflare cache to ensure complete cache invalidation = 2.2.17 = * Enhancement: Added a Purge Progress notification to clearly inform users when a purge action is actively running. = 2.2.16 = * Improved: Increased expected API response timeout from 4 seconds to 30 seconds to better handle delayed responses. = 2.2.15 = * Improved: Updated handling and response messages for Cloudflare cache purge requests to provide clearer feedback and improve transparency. = 2.2.14 = * Fix: Resolved a critical Cross-Site Request Forgery (CSRF) vulnerability by implementing nonce validation. * Fix: Patched a Broken Access Control (BAC) vulnerability to ensure users cannot perform actions outside of their assigned capabilities. = 2.2.13 = * Fix: Addressed compatibility issues with Elementor and WooCommerce variable products. Also resolved issues caused by improper HTML entity decoding to ensure correct JavaScript content rendering and improved plugin stability. = 2.2.12 = * Fix: Resolved an issue where Lazy Load and Cross-Origin options caused HTML entities to remain encoded on the front-end. * Fix: Corrected a bug where the breeze_clear_remote_gravatar cron event was not removed upon Breeze plugin uninstallation. = 2.2.11 = * Fix: Cache was not purged automatically during Breeze plugin updates. * Add: Clearing Elementor cache will also clear Breeze cache. * Changed: Updated lazy load initialization and improved iframe handling to better align with browser-native lazy loading behavior. = 2.2.10 = * Added: native lazy loading support for iframe elements. * Added: Implemented lazy load support for video elements with multiple source tags. * Added: Introduced .webp format support for lazy loading images. * Changed: Switched from lazysizes to Vanilla LazyLoad, reducing the lazy load library's footprint. * Improved: Updated lazy load placeholders to use Base64-encoded inline images for improved performance. = 2.2.9 = * Fix: PHP error no longer occurs when a new comment is submitted. * Enhancement: Breeze cache now automatically clears after one or more plugin updates to ensure accurate content rendering. = 2.2.8 = * Fix: The cron event breeze_purge_cache will now be created when activating the Breeze plugin. * Fix: The cron event breeze_purge_cache will now be removed from single site and multi-site upon Breeze plugin deactivation. = 2.2.7 = * Add: Breeze plugin cache now automatically purges when updating global Header/Footer in Elementor. = 2.2.6 = * Fix: PHP warning fixed on comment status change. = 2.2.5 = * Improve: Improve CF and Varnish cache purge for custom permalinks /%category%/%postname%/. * Improve: Enhance Varnish cache validation to prevent multiple HTTP requests. * Optimize: Optimize the object cache flush system to purge only the relevant cache. = 2.2.4 = * Fix: The PHP warning related to autoload of the MobileDetect library has been fixed. = 2.2.3 = * Fix: Added support for custom headers array. * Fix: Homepage cache will now be automatically purged when updating a POST/CPT. = 2.2.2 = * Fix: Resolved PHP warnings for Host Files Locally feature. * Fix: The Breeze configuration file is now updated upon saving settings rather than being deleted and re-created. In multisite environments, the file will only be removed when switching from 'Custom Settings' to 'Inherit.' Additionally, uninstalling the plugin will delete both the configuration file and its containing folder. * Fix: Using Purge Internal Cache no longer results in multiple query parameters being appended to the current URL. * Fix: Updating a Page, Post, or Custom Post Type (CPT) will now clear the local cache specifically for the updated content, its associated taxonomies, and the relevant archive page, if applicable. = 2.2.1 = * Fix: Enhance the functionality to support multisite networks with over 100 subsites seamlessly. * Fix: Issues with the locally hosted font feature affecting font rendering have been identified and fixed. = 2.2.0 = * Fix: To prevent caching of Cloudflare firewall headers, use Cache-Control headers and Page Rules. * Fix: The issue with incorrect default options being saved for HTML optimization Tab settings has been fixed. * Improved: Enhanced cache purging messages to display the purge status for each module individually. * Improved: The Breeze error notice for file/folder permission issues and missing files/folders will no longer appear when the cache system is OFF. * Fix: Resolved an issue where links remained cached even after being added to the 'Never Cache URL(s)' list. = 2.1.20 = * Fix: Resolved an issue where the lazy load library was being loaded even when not enabled. This occurred in rare instances. * Fix: Enhanced Lazy-Load functionality to prevent conflicts with the "Elementor" and "EWWW Image Optimizer" plugins. * Fix: Updated the Heartbeat option range to include "Default," "30 to 120 seconds," and "Disable" settings. * Fix: Pages/Posts and Custom Post Types containing the Gutenberg block "Latest Comments" will now have their cache reset when a comment is added, deleted, or edited. The comment must be approved for the cache reset to occur. * Fix: Enhanced validation for URLs added to the “Never Cache URL(s)” option. = 2.1.19 = * Fix: The 'Never cache URL(s)' option is now compatible with URLs that contain non-ASCII characters. * Fix: Enhance the plugin update process by implementing new functionality to remove related cron jobs automatically. = 2.1.18 = * Fix: By setting WooCommerce pages as the homepage, all website pages were excluded from caching. This issue has now been successfully fixed for both the single site and multisite environments. = 2.1.17 = * Fix: Errors have been resolved during the activation, deactivation, updating, and deletion of plugins and themes from ManageWP. * Fix: The 'Host Google Fonts Locally' feature has been improved to prevent PHP warnings. * Fix: Improved multi-site sub-directory sub-site detection, ensuring the correct handling of blog_id for cache storage and cache purging. = 2.1.16 = * Fix: Refactor the handling of the woocommerce_after_product_object_save hook to ensure it is only executed once per request when products updated via the API. = 2.1.15 = * Fix: Addressed vulnerabilities related to Broken Access Control and Cross-Site Scripting (XSS) as discovered by Patchstack. = 2.1.14 = * Fix: The JavaScript warning related to missing href attributes for a link has been fixed. * Fix: The cache issue has been fixed when updating a post on any sub-blog in the Multisite environment. = 2.1.13 = * Fix: The cache will be purged automatically when a scheduled post's status changes to 'Published'. * Fix: Update the reference link in the Knowledge Base article under the 'Never Cache URL(s)' option in the ADVANCED OPTIONS tab. = 2.1.12 = * Add: Shop Managers can now use Purge All Cache option to clear website cache. * Fix: Excluded wp-login.php from preload feature that fixes the problem with unwanted user logouts. = 2.1.11 = * Fix: The issue with the incorrect previous versions list under the Breeze Rollback Version Option has been resolved. = 2.1.10 = * Fix: The warning issue has been resolved during the product update process via WP-CRON. * Fix: In some browsers, pushing the back button would take the user to the same URL. The issue has been resolved and the back button will work as expected. * Add: The ability to clear the cache for individual WordPress default post types and custom post types has been introduced, offering users enhanced control over their caching strategy. = 2.1.9 = * Fix: Resolved an issue where images already in the viewport were not loading when JavaScript lazy-load was enabled. = 2.1.8 = * Add: Users now have the ability to roll back the plugin to previous versions. * Fix: The file names previously generated by MD5 are now being generated by SHA512 * Fix: PHP Notice that was generated under specific conditions when using the "Never Cache URL(s)" option is no longer being displayed. * Fix: The compatibility issue between Breeze and WP-Lister, a plugin developed by WP Labs, has been resolved. * Fix: The conflict regarding the search query string between Breeze and FiboSearch - AJAX Search for WooCommerce has been resolved. * Fix: Viewport image issues when lazy-load is enabled has been resolved. * Fix: The issue with converting Hebrew characters in inline scripts to UTF-8 characters has been resolved. = 2.1.7 = * Fix: Enhancing WooCommerce Default Pages Exclusion Conditions from Cache. * Fix: Lazy-load placeholder changed to base64 encoding in order to fix incorrect characters from displaying. * Fix: Improving Compatibility of Delay All JS and Lazy Load Images Options with PHP 8.2 * Fix: The Purge Cache After option's updated value is now accurately reflected when importing data through the Command Line Interface (CLI). * Fix: In Multisite where a file permission warning is displayed upon plugin reactivation following deactivation has been addressed. = 2.1.6 = * Fix: Error when placing WooCommerce order on the checkout page. * Fix: Issue when query strings contain uppercase letters. = 2.1.5 = * Add: Implemented wildcard functionality in the Cache Query String. * Fix: Updated CSS minification library. * Fix: Successfully resolved the CSS calc function minification issue. * Fix: Change the file extension of the cache file from .php to .html. * Fix: Refactored the caching procedure for responses from any 'edit' type API requests. * Fix: Enhanced cache mechanism on WooCommerce orders workflow. * Fix: Enhanced the mechanism to automatically clear the archive cache whenever a term is updated. * Fix: Enhanced the CDN URLs pattern to accommodate additional characters for top-level domains. = 2.1.4 = * Fix: Addressed a vulnerability discovered by CovertSwarm. * Fix: Limited the thank-you message display to admin and super admin users after activating Breeze. * Fix: Resolved file permission warning issues in the multisite network, ensuring seamless operation when adding a new subsite. * Fix: Modified the Mobile Detect PHP Namespace in the third-party library to prevent conflicts with other plugins or themes, improving overall compatibility. * Fix: Ignored images with both JSON and JSON encryption to prevent adverse effects on other libraries handling those tags, ensuring smooth functionality. * Fix: Separated lazy load functionality for videos and iframes, providing increased control over website lazy loading behavior for a more optimized user experience. * Add: Implemented distinct functionality for