* "Plugins Manager": Option to unload & load plugins as an exception (from any unload rule) on the following built-in WordPress pages: Search, Author & Date / read more: https://assetcleanup.com/docs/?p=1647
* "Plugins Manager": Option to contract / expand the plugins for easier management, which could be effective when having lots of plugins activated (the contract/expand state is remembered after the click)
* Fix: When plugins are unloaded via "Plugins Manager" and flush_rewrite_rules() is called in plugins/themes (which is a rare thing and an expensive operation), the rewrite rules from "wp_options" ('rewrite_rules' option) could be re-updated incompletely (since some plugins that had rules weren't loaded at the time); This sometimes led the website's administrator to go to "Settings" -- "Permalinks" and manually re-update the settings
* "Plugins Manager": Ability to unload plugins (and load them as an exception from any unload rule) on all other taxonomy pages that are detected from other plugins/themes, apart from the default WordPress ones ("category", "post_tag") and some popular ones from WooCommerce: "product_cat" & "product_tag"
* Option to skip "Cache Enabler" cache clearing via using the "WPACU_DO_NOT_ALSO_CLEAR_CACHE_ENABLER_CACHE" constant (e.g. set to 'true' in wp-config.php) - read more: https://www.assetcleanup.com/docs/?p=1502#wpacu-cache-enabler
* "Knowledge Base for Documents and FAQs" plugin: Do not show the CSS/JS manager at the bottom of the page when "Edit KB Article Page" is ON
* New "Brizy - Page Builder" setup: Prevent Asset CleanUp Pro from triggering when the editor is ON
* Fix: "Do not load Asset CleanUp Pro on this page (this will disable any functionality of the plugin)" - if turned ON, make sure the hardcoded list loads fine in the front-end view (Manage CSS/JS)
making the admin aware that some rules might not be relevant anymore (e.g. the admin uninstalled WooCommerce, but unload rules about "product" post types or a specific product page remained in the database)
* Stopped using the "error" class (e.g. on HTML DIV elements) and renamed it to "wpacu-error" as some plugins/themes sometimes interfere with it (e.g. not showing the error at all, thus confusing the admin)
* Keep the same strict standard for the values within the following HTML attributes: "id", "for" to prevent any errors by avoiding any interferences with other plugins
* Fix: Some rules were not fully exported & imported (e.g. the rules from "termmeta" and "usermeta" tables)
* PHP 8.2.7 compatibility
* New Option: Contract / Expand All Assets within an area (e.g. from a plugin)
* Improvement: Offer a fallback method to fetch the author's information on the author archive page (when unload rules are set within archive author pages)
* Improvement: Only print the notice (as an HTML comment) about the "photoswipe" unload to the administrator (it's a special case where the HTML has to be hidden in case the CSS file gets unloaded)
* Fix: In specific WordPress environments, when rules in "Plugins Manager" are used related to the page type (e.g. unload on all pages belonging to a specific post), the permalinks are not working as expected and they have to be resaved within the Dashboard
* Fix: 'PHP Deprecated: str_replace(): Passing null to parameter #3 ($subject) of type array|string is deprecated in [...]/pro/early-triggers-pro.php'
* Improvement: When using plugins such as "Learndash", the post types weren't detected in the permalinks structure when plugin unload rules had to be applied
* Fix / PHP Warning: Undefined array key "script_src_or_inline_and_noscript_inline_tags" in [...]/templates/meta-box-loaded-assets/_assets-hardcoded-list.php / Sometimes, if there are no STYLES OR SCRIPTS to be detected on a specific page (it rarely happens), the list of assets will not be fetched in PHP 8+
* Fix: Plugin unload & load exception rules weren't working on specific environments within "Plugins Manager"
* Improvement: Make sure the plugin unload rules by page type are always triggering in any WordPress setup, disregarding the post status (if the page is only for administrators, the rule will take effect)
* WPML Fix: Prevent Asset CleanUp Pro from triggering whenever /?wpml-app=ate-widget is loaded (in some environments, the content returned was empty and the automatic translation area was not loading)
* PHP 8+ Fix / Sometimes when "Manage in the Front-end view" is enabled, the following error shows up when managing assets: Uncaught Error: json_decode(): Argument #1 ($json) must be of type string, array given in [...]/classes/Main.php
* PHP 8+ Fix / The following notice triggers when WP_DEBUG is enabled - Deprecated: strlen(): Passing null to parameter #1 ($string) of type string is deprecated in [...]/classes/OptimiseAssets/OptimizeCommon.php
* Sometimes, when "Preview Changes" is used (e.g. when DIVI theme is enabled) from an edit page area, the preview doesn't trigger because of a JS error from script(.min).js
* Fix: Prevent undefined errors from the newly added "tag_output" object within the hardcoded assets list
* Added NOSCRIPT tags (usually added after SCRIPT tags) to the hardcoded list of assets (e.g. if you unload a tracking script on a page, you can also unload its NOSCRIPT tag as well, if any was added)
* Elementor Templates: Hide "Manage CSS & JS" whenever hovering over a template title as managing the assets is meant for public pages (not templates added to pages)
* Fix: Hardcoded assets / When an inline SCRIPT was detected, it was erroneously detected as a SCRIPT with the "src" attribute, if the inline content contained the "src" string (e.g. )
* Fix: If a plugin's option from "options" table had an empty value (e.g. edited manually by a developer for debugging purposes), the plugin was using add_option() to update it instead of update_option() which is the right function to use in this situation
* Preload CSS/JS: If a tag (LINK/SCRIPT) is wrapped by Internet Explorer comments, make sure the wrapping is preserved when the asset is preloaded, otherwise, the preloading would occur in all browsers when its meant to be loaded only by Internet Explorer
* CSS/JS manager via "Manage in the front-end view": Make sure to notify the admin about hardcoded assets wrapped by Internet Explorer comments
* Hardcoded assets improvement: Use fewer resources when the unloading is triggered
* Fix: In rare cases when an option value remained empty in the database (e.g. edited directly through phpMyAdmin), add_option() was used instead of update_option()
* Improvement: Whenever you mark a hardcoded tag as unloaded, it will stay unloaded (the rule will be kept in place) as long as its content or the relative source value will stay the same (e.g. if you unload will be considered the same as )
* Improvement: Better detection of the tags (including the hardcoded ones) when the source of a tag (e.g. "src" or "href") is not wrapped around quotes or even has spaces added after or before the equal sign / e.g. <script src=/path/to/file.js></script> OR <link rel=stylesheet href = /path/to/file.css>
* New Option: Added the load exception (if any unload rule is applied) based on the post type for hardcoded assets (e.g. 'On all WooCommerce "Product" pages')
* Whenever XML-RPC is completely disabled in 'Settings' -- 'Disable XML-RPC', make sure the following option is automatically turned ON: 'Settings" --- 'HTML Source CleanUp' -- 'Remove "Really Simple Discovery (RSD)" link tag?'
* Fix: 'SweetAlert 2' files were missing when 'SCRIPT_DEBUG' was turned OFF (most cases) which sometimes prevented the modal to show with specific information regarding the plugin rules that were used
* Fix: The size of an asset loaded locally was not shown when the path to the file was relative and starting with the URI of the WordPress site URL / Example: The WordPress site URL was "https://yoursite.com/blog" and the tag was "<script src='/blog/wp-content/path/to/file.js'></script>"
* Fix: "Deprecated: strpos(): Non-string needles will be interpreted as strings in the future. Use an explicit chr() call to preserve the current behavior in "/wp-content/plugins/wp-asset-clean-up-pro/classes/OptimiseAssets/(OptimizeCss.php and OptimizeJs.php)"
* Fix: Exclude from optimisation JS files that contain "/*@cc_on" and "@*/" as they are meant to be loaded by Internet Explorer and not stripped if they only contain commented code