== Changelog == All notable changes to this plugin will be documented in this file. Copy of all changes for last MAJOR version can also be found in readme.txt. = 7.0.1 - 2026-06-26 = * Fixed - Treat HTTP 412 (Precondition Failed) as a successful purge, returned when there is no matching cache item to purge = 7.0.0 - 2026-06-17 = * Added - Automatic cache purge on Elementor changes: global Colors/Fonts, Site Settings and Kit saves, Theme Builder template saves, and the "Regenerate Files & Data" button now trigger a purge (active only when Elementor is installed) * Removed - Nginx PageSpeed cache support (PageSpeed has been deprecated) * Removed - Pagespeed optimized CSS setting (style id tag stripping) * Security - Fixed stored XSS in admin settings templates (CVE-2025-31764) = 5.4.1 - 2021-07-16 = * Changed - Fastcgi purge works with HTTP method GET + prefixed 'purge' in url = 5.4.0 - 2021-06-18 = * Added - Additional debug information (wp_remote_request details) when CACHOLONG_CACHE_DEBUG_HTTP_API_REQUEST is set in wp-config.php * Changed - Now fastcgi purge works similar to pagespeed purge (without custom unlink code) * Removed - Required server variable ‘CC_NGINX_FASTCGI_CACHE_PATH’ * Removed - Message: required $_SERVER[‘CC_NGINX_FASTCGI_CACHE_PATH’] is not set * Changed - Code base maintenance = 5.3.2 - 2021-04-15 = * Changed - Fixed error in docs for WP-CLI commands = 5.3.1 - 2021-04-15 = * Changed - Improved readability readme.txt = 5.3.0 - 2021-04-15 = * Added - Support for one or more ip addresses in WP CLI commands purge to override hosts.json * Added - WP CLI commands now have aliases * Changed - Updated and tweaked readme.txt * Changed - WP CLI commands purge and purge all now only work with arguments * Changed - Removed WP CLI purge_all command (this is now handled with purge all) * Changed - Updated copyright from 2015-2020 to 2015-2021 * Changed - Removed register_deactivation_hook hook and empty method * Fixed - Trashing a post or page didn't purge = 5.2.0 - 2021-03-10 = * Fixed - Purge old and new slug when slug changes * Fixed - Trash and untrash work again * Added - Support for WPML (including language negotiation type domain) * Added - Plugin is tested with Wordpress 5.7 (RC 2) = 5.1.1 - 2020-12-14 = * Fixed - Editing home page did not purge home page. Issue with Wordpress method url_to_postid() which does return post id for home page. = 5.1.0 - 2020-11-18 = * Added - WP CLI commands: purge, purge_all, factory_reset. For details see readme.txt * Added - New admin bar commands: purge pagespeed, purge fastcgi * Added - link to settings page on plugin index page * Added - Plugin is tested for usage with Wordpress 5.6 RC (and 5.5.1) * Changed - Updated copyright from 2015-2019 to 2015-2020 * Changed - Moved logging to cacholong-cache-control.log * Fixed - Checkbox 'all caches' on settings page > Purge settings default/custom post types did not empty other checkboxes anymore. Fixed. * Fixed - Trashing an item in Gutenberg didn't trigger purge. * Fixed - Stripping id tags now only works on frontend and if a user is not seeing an admin page or admin_bar. = 5.0.1 - 2020-09-30 = * Fixed - Removing id tag for pagespeed optimizing of css, caused issues with some backend plugins. Stripping id tags now only works on frontend. = 5.0.0 - 2019-11-13 = * Added - Multisite support * Added - WP CLI support * Added - Factory reset * Added - Message when required $_SERVER[‘CC_NGINX_FASTCGI_CACHE_PATH’] is not set * Added - Message when all caches are disabled in hosts.json * Added - Plugin is tested for usage with Wordpress 5.3. = 4.1.1 - 2019-02-22 = * Added - When Wordpress cronjobs are disabled (DISABLE_WP_CRON = true), text with link to FAQ is shown underneath setting to activate cronjob purging * Added - Current timezone underneath setting for cronjob time of day = 4.1.0 - 2019-02-21 = * Added - Plugin is capable to purge with Wordpress cronjobs * Added - Plugin is tested for usage with Wordpress 5.0.3 * Added - Icon for 'Purge all caches' on adminbar * Fixed - Errors caused by empty 'File with hosts (JSON)' setting * Changed - 'Purge all caches' also available on frontend adminbar * Changed - Corrected a few spellerrors (cachalong -> cacholong) * Changed - Updated copyright from 2015-2018 to 2015-2019 = 4.0.2 - 2018-11-15 = * Added - Plugin is tested for usage with Wordpress 5.0. * Fixed - Hook wp_unique_post_slug recieves 6 arguments instead of 4. * Changed - Retrieval of Wordpress default post types for flushing. Only public post types are used & flushable. * Changed - 'Itemlist to sentence' function also handles associative array's. = 4.0.1 - 2018-03-14 = * Changed - Small improvement to readme.txt. = 4.0.0 - 2018-02-26 = * Added - license.txt file * Added - Fingerprinting for assets * Changed - Plugin name change from Cache helper by Cacholong -> Cache control by Cacholong * Changed - Small changes in author / copyright * Changed - Language files updated * Changed - All php / phtml / js files a copyright / license block * Changed - Namespaced all classes * Changed - Improved prefix on all global functions cc_ -> cacholong_cc_ * Changed - All namespaces to fully qualified names * Changed - Javascipt prefixes from cc_ -> cacholong_cc * Changed - Wordpress HTTP API is used instead of (custom) curl (wrapper). * Deprecated - Curl class. = 3.2.1 - 2018-01-25 = * Fixed - Small fix for showing 'delay text'. = 3.2.0 - 2018-01-24 = * Changed - Only show 'delay text' for pagespeed when purge was succesfull, instead of always. = 3.1.1 - 2016-09-14 = * Fixed - Removed a few purge hooks from is_admin() to work again. = 3.1.0 - 2017-12-22 = * Added - Delay text message for all purges. * Fixed - Handle non-array admin messages. * Changed - userOptions table is now used to handle session flash data, session handling is removed. * Changed - is_admin() to optimize performance frontend. * Changed - Removed log message for missing hosts json file, not needed anymore. * Changed - Language files updated. * Changed - Improvements in messages, phpDoc and debugging. * Deprecated - Sessions class. = 3.0.0 - 2017-12-15 = * Added - Setting to enable or disable removing id attribute from stylesheet link tag. Nginx pagespeed needs css id removed to combine stylsheets. = 2.0.2 - 2016-09-14 = * Added - Purges are triggered at trash and untrash. = 2.0.1 - 2016-09-11 = * Added - Debug options added (triggered by WP_DEBUG). * Changed - Changes in admin notice classes. * Fixed - Fixed message 'are you sure you want to activate' on activation hook. Removed nonce check. = 2.0.0 - 2016-09-09 = * Changed - Setting fields for default and custom post types to trigger other purges. = 1.4.0 - 2016-08-30 = * Changed - Properly handle purge for scheduled post. = 1.3.0 - 2016-03-28 = * Changed - Purge messages are simplified. They are no longer saved directly to a session, but processed to one message per message type (error, notice, info ...). Detailed information about every purge is no longer given, to prevent a long list of purge messages. * Changed - Small improvement in handling https requests. * Changed - Small changes in handling non-existing hosts file. = 1.2.7 - 2016-02-16 = * Fixed - session_destroy() gives warning when no session is available. Check for session_id before destroying implemented. = 1.2.6 - 2016-02-16 = * Fixed - Al users can now use the 'purge all' button in the admin bar. = 1.2.5 - 2016-02-16 = * Fixed - Curl timeout from 1 to 5 seconds, because some purge-requests take more then 1 second. = 1.2.4 - 2016-01-04 = * Fixed - Function empty() can't handle temporary value from function to check if it is empty. Needs variable by reference. Only applies to < php 5.5. = 1.2.3 - 2015-12-21 = * Fixed - Disable SSL verification in curl request to avoid issues. = 1.2.2 - 2015-12-18 = * Fixed - Redirects happen when a https requests a purge. Let http(s) protocol determin the curl request protocol. So if https is used, the purge also uses https. = 1.2.1 - 2015-11-27 = * Fixed - Navmenu update needs total cache flush. * Fixed - New shutdown method hanles all delayed purges at once. = 1.2.0 - 2015-11-26 = * Added - Use default settings for hosts.json, when not available. * Added - Handle admin messages with ajax. * Added - Merge admin messages to converve space. * Changed - Check on post type to only allow certain post types to trigger purge. Works with a blacklist. = 1.1.1 - 2015-11-17 = * Fixed - Activation and uninstall hooks are fixed. = 1.1.0 - 2015-11-17 = * Added - Handle purge for post or page crud, slug changes & ajax change. * Fixed - Errors are saved in session, because inline ajax edit seems to break the inline edit (although it did not). To not the confuse the user, errors are saved in a session and retrieved in the next request. = 1.0.0 - 2015-11-10 = * Added - First release.