* 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 <style type="text/css">div.custom-name { color: green; }</style> will be considered the same as <style data-custom-attribute="name-here">div.custom-name { color: green; }</style>)
* 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
* "CSS/JS Manager": If a handle has inline code associated with it, mention the size (e.g. bytes, KB) of that inlined LINK or SCRIPT (just like it's mentioned for the LINK tags with the "href" attribute and SCRIPT tags with the "src" attribute)
* Higher accuracy in detecting (for optimization) the LINK tags that are loading CSS/JS files
* Improvement: In case a WordPress installation has a subdirectory (e.g. www.mysite.com/blog), make sure any assets that have relative URIs (e.g. /blog/wp-content/style.css) are all optimized properly
* Improvement: If an asset is an unloaded through the CSS/JS manager and a preload (via LINK tag) was already set through another plugin (e.g. "Pre* Party Resource Hints") or within the theme, for instance in functions.php, make sure to strip the preloading as it's useless if the actual asset is not loaded in the first place
* "Plugins Manager" improvement: Compatibility with "Premmerce Permalink Manager for WooCommerce" plugin (if the URL of the product is changed, make sure the rules based on the "product" post type are still applied)
* If "SCRIPT_DEBUG" is set to "true", load the non-minified versions of the plugin's assets / read more: https://wordpress.org/support/article/debugging-in-wordpress/#script_debug
* Fix: Make sure none of the plugin's assets are included within any combined CSS/JS files (if the options are enabled in "Settings")
* Fix: Make sure to offer fallback to "wp_json_file_decode" in case the WordPress version is below 5.9.0 (as compatibility with older WP versions is promised)
* By default, the front-end optimization is not triggered for URIs with query strings (as they are usually not cacheable); Make more exceptions and trigger the optimization when there are common query strings (the page is cacheable) in the URI such as the ones starting with "utm_", "mtm_", "fb_", etc.
* Better detection of the homepage in early checks for rules set in "Plugins Manager" by ignoring more common query strings such as the ones starting with "utm_", "mtm_", "fb_", etc.
* Higher accuracy in detecting WordPress core files (some of the undetected WP core files used to be shown in the "External 3rd Party" area)
* Higher accuracy in detecting a DIVI page builder: Asset CleanUp doesn't load any rules when /wp-admin/admin.php?page=et_theme_builder is loaded unless you want to -- read more: https://www.assetcleanup.com/docs/?p=1260
* Cache Enabler Compatibility: Avoid the deprecated error related to "cache_enabler_before_store" by checking the version of Cache Enabler and using the right filter
* Improvement: Make sure all the unload rules from "Overview" are marked with red font as all load exceptions are marked with green font
* Fix: PHP 8.1 - Make sure substr() doesn't have any null parameters to avoid any errors
* Fix: When editing a post/page and "Classic Editor" plugin is activated (basically when the page looks the same as it used to before Gutenberg editor was implemented in WordPress), the "Preview Changes" button from the top right side box does not work if the CSS/JS manager is loaded
* Show any special settings in "Overview" -- read more: https://www.assetcleanup.com/docs/?p=1495
* Make sure the plugin unload rules for REST API calls (read more: https://www.assetcleanup.com/docs/?p=1469) apply on AJAX calls as well (e.g. when a plugin uses jQuery AJAX code to fetch information from a REST API call)
* Notify the admin when the tracking notice is shown that he/she can manage this option in the "Settings" area (e.g. in case closing the notice box doesn't work because of some JavaScript errors on that page, coming from a different plugin or the theme)
* Make sure the user is redirected only once to the "Getting Started" page after the plugin is activated the first time (not after every re-activation as many developers are doing debugging)
* Reduce the number of DB calls when visiting the "Plugins" page within the Dashboard and the "License" page from Asset CleanUp Pro's menu
* On pages without any unloading rules, do not make any DB calls or trigger extra PHP code to retrieve any load exceptions as they are irrelevant in this situation since the assets are loaded anyway
* Optimised the code to avoid triggering DB calls to the "options" table to check specific transient values
* Remove extra DB queries related to "post_format" as this taxonomy is irrelevant for managing in Asset CleanUp Pro
* When Asset CleanUp Pro is prevented from loading via the rules from "Settings" -- "Plugin Usage Preferences" -- "Do not load the plugin on certain pages" OR from "Do not load Asset CleanUp Pro on this page (this will disable any functionality of the plugin)" within "Page Options" area (when managing assets for a specific page), make sure the checking is done earlier to avoid an extra DB query that would become irrelevant if the plugin would not be loaded on that page
* Optimisation: Reduce the number of queries made to the database & trigger fewer code during early code loaded in Asset CleanUp Pro's MU plugin (e.g. to determine if the URI is a homepage, to determine the page type based on the URI)
* "Plugins Manager": Make sure the green font shows for any load exception rule that is chosen
* "Plugins Manager" Fix: When non-latin characters were used in the URI, some plugin unload/load exception rules were not working such as the ones based on the post type (e.g. post, page, product, tag) and taxonomy (e.g. category, tag, product category, product tag)
* "Plugins Manager" Fix: The load exception rule was not applied for plugins on taxonomy pages ('category', 'post_tag', 'product_cat', 'product_tag') when set using the following option: "On the following taxonomy pages:"