| @@ -3,10 +3,10 @@ | ||
| 3 | 3 | Donate link: https://david.dw-perspective.org.uk/donate |
| 4 | 4 | Tags: cache, caching, image cache, minify, performance cache, page speed, image optimizer, compress images, optimize database, clean database |
| 5 | 5 | Requires PHP: 7.2 |
| 6 | 6 | Requires at least: 4.9 |
| 7 | -Tested up to: 7.0 | |
| 8 | -Stable tag: 4.5.2 | |
| 7 | +Tested up to: 7.1 | |
| 8 | +Stable tag: 4.7.0 | |
| 9 | 9 | License: GPLv2+ |
| 10 | 10 | License URI: https://www.gnu.org/licenses/gpl-2.0.html |
| 11 | 11 | |
| 12 | 12 | Get caching and more with this powerful cache plugin. Cache, optimize images, clean your database and minify for maximum performance. |
| @@ -382,8 +382,116 @@ | ||
| 382 | 382 | |
| 383 | 383 | |
| 384 | 384 | == Changelog == |
| 385 | 385 | |
| 386 | += 4.7.0 - 16/Sep/2026 = | |
| 387 | + | |
| 388 | +* FEATURE: Dashboard overview showing a summary of all WP-Optimize modules (cache, images, minification, and database), including active status, savings, and quick links to manage each area | |
| 389 | +* FEATURE: Load tables in batches when there are too many tables to load in a single request | |
| 390 | +* FIX: Added missing optimizations for auto optimizations cron | |
| 391 | +* FIX: Fix removal of cache settings and related cron events on plugin deactivation and reactivation | |
| 392 | +* FIX: Fixed inconsistent UI in the Minify status tab, and removed duplicate tooltips | |
| 393 | +* FIX: Fixed the association of the wp_e_submissions_actions_log table with its plugin | |
| 394 | +* FIX: LCP - Preserve original cached HTML when removing the LCP observer script fails instead of returning an empty string | |
| 395 | +* FIX: PHPStan issues WPO_WP_Kses_Compatibility class | |
| 396 | +* FIX: Permissions issues for adminbar menu items | |
| 397 | +* FIX: Registered image sizes not showing on multisite | |
| 398 | +* FIX: Removed extra spacing in the Wipe settings section | |
| 399 | +* FIX: WP_CACHE constant warning in debug.log | |
| 400 | +* FIX: WP_Optimize_Utils::get_file_path() does not handle URLs with query parameters | |
| 401 | +* REFACTOR: WPO_Page_Builder_Compatibility class | |
| 402 | +* REFACTOR: WPO_Webp_Convert_Image_Task class | |
| 403 | +* TWEAK: Added data- attributes support for older wordpress versions | |
| 404 | +* TWEAK: Cache - Browser cache settings updated for better compatibility | |
| 405 | +* TWEAK: Cache - Improved browser cache detection | |
| 406 | +* TWEAK: Disabling Show avatars no longer leaves gravatars hosted locally in the background | |
| 407 | +* TWEAK: Improved GZIP detection | |
| 408 | +* TWEAK: Improved the Purge Page Cache and Purge Minify Cache admin bar functionality | |
| 409 | +* TWEAK: Premium - Improved UX for Unused CSS Removal | |
| 410 | +* TWEAK: Premium - Index Post Meta Table power tweak now correctly indexes all subsites postmeta tables in a Multisite network and tracks last-run status per site | |
| 411 | +* TWEAK: Premium Auto LCP writes the gzip cache variant atomically via a temporary file and rename, matching how the HTML cache file is patched | |
| 412 | +* TWEAK: Rename `as_type` to `asset_type` in the LCP beacon request for clarity | |
| 413 | + | |
| 414 | += 4.6.1 - 29/Jul/2026 = | |
| 415 | + | |
| 416 | +* FIX: CSS exclusions added via Minify -> Advanced -> Exclude are now saved on separate lines, preventing invalid exclusion entries | |
| 417 | +* FIX: Fixed compatibility issue with the WooCommerce multi-currency plugin | |
| 418 | +* FIX: Incorrect WebP browser detection for Firefox users | |
| 419 | +* FIX: Misaligned UI issue in minify admin pages | |
| 420 | +* FIX: Mobile UI issues | |
| 421 | +* FIX: Prevent caching pages when a WooCommerce cart has content | |
| 422 | +* FIX: UI freezes when restoring a compressed image | |
| 423 | +* REFACTOR: Use WP_Optimize_Utils::get_url_without_cache_purge_params() for admin bar links | |
| 424 | +* REFACTOR: WPO_KD_Submissions_Compatibility class | |
| 425 | +* REFACTOR: WP_Optimize_Server_Compatibility class | |
| 426 | +* REFACTOR: WPO_Polylang_Compatibility class | |
| 427 | +* TWEAK: Clear cached local Google Fonts statistics when the CSS font file is downloaded | |
| 428 | +* TWEAK: Create a new class named WP_Optimize_UpdraftCentral_Commands to group UpdraftCentral specific commands, currently including methods for retrieving and updating WP-Optimize settings | |
| 429 | +* TWEAK: Removed deprecated UpdraftCentral commands from WP_Optimize_Commands class | |
| 430 | +* TWEAK: Removed unused phpseclib dependency from composer | |
| 431 | +* TWEAK: Smush post meta keys are prefixed with `_` and now is multisite compatible | |
| 432 | + | |
| 433 | += 4.6.0 - 06/Jul/2026 = | |
| 434 | + | |
| 435 | +* FEATURE: Premium - Automatically preloads the page’s Largest Contentful Paint (LCP) element to improve initial load speed and perceived performance | |
| 436 | +* FIX: Cache - Fixed an issue related to cache setting saving | |
| 437 | +* FIX: Fixed a UI issue in WooCommerce variation products when Automatically preload content after it is purged is enabled | |
| 438 | +* FIX: Fixed browser caching issue where admin pages were cached | |
| 439 | +* FIX: Mobile UI issue | |
| 440 | +* FIX: Notice Dismissal issue | |
| 441 | +* FIX: Usage of htmlspecialchars() | |
| 442 | +* REFACTOR: Code from can_purge_cache() method moved to WP_Optimize_Utils::current_user_can_purge_cache() | |
| 443 | +* REFACTOR: Fix WordPress Security check errors and warnings on admin page | |
| 444 | +* REFACTOR: Make `is_edit_mode` a static method and avoid duplication | |
| 445 | +* REFACTOR: Optimized WP_Optimize_Database_Information::get_table_plugin() method | |
| 446 | +* TWEAK: Added method to check current user has the capability | |
| 447 | +* TWEAK: Added methods to retrieve and save essential WP-Optimize toggleable settings for UpdraftCentral | |
| 448 | +* TWEAK: Disable and hide the "Speed up WooCommerce 'Get total spent' query" Power Tweak when it's no longer relevant | |
| 449 | +* TWEAK: Handle race conditions in font downloading and optimize cache stats storage | |
| 450 | +* TWEAK: Improved image grid action button visibility to accommodate WordPress 7.0 button styling changes | |
| 451 | +* TWEAK: Matched response styles when purging via the admin bar | |
| 452 | +* TWEAK: Premium - Handle empty orders in WooCommerce Total Spent Power Tweak feature | |
| 453 | +* TWEAK: Premium - Improved hash logic for the Unused CSS Removal feature | |
| 454 | +* TWEAK: Prevent unwanted cache growth caused by crawlers or preload bots | |
| 455 | +* TWEAK: UI changes to match WordPress 7.0 | |
| 456 | +* TWEAK: Unschedule all WP-Optimize cron jobs on deactivation in multisite | |
| 457 | +* TWEAK: WP_Optimize_Power_Tweaks class method deactivate bug fixed related to the array_diff function | |
| 458 | + | |
| 459 | += 4.5.5 - 05/Jun/2026 = | |
| 460 | + | |
| 461 | +* TWEAK: Update the bundled common-libs version | |
| 462 | + | |
| 463 | += 4.5.4 - 25/May/2026 = | |
| 464 | + | |
| 465 | +* FIX: WebP image compression breaking in some cases | |
| 466 | +* REFACTOR: Avoid instantiating PHPSQLParser on each call in WPO_DB_Table_Analysis | |
| 467 | +* REFACTOR: Class WPO_WebP_Convert | |
| 468 | +* REFACTOR: Make markup readable in `tables-body.php` template | |
| 469 | +* REFACTOR: Refactored duplicated cache_admin_bar logic by centralizing it in the admin class and removing redundant implementations. | |
| 470 | +* REFACTOR: Removed unused `WPO_Htaccess_Capabilities` class | |
| 471 | +* REFACTOR: WPO_Activation class | |
| 472 | +* REFACTOR: WPO_Uninstall class | |
| 473 | +* REFACTOR: WPO_WebP_Alter_HTML class | |
| 474 | +* REFACTOR: WPO_WebP_Self_Test class | |
| 475 | +* REFACTOR: WPO_WebP_Test_Run class | |
| 476 | +* REFACTOR: WPO_WebP_Utils class | |
| 477 | +* REFACTOR: WPO_Webp_Task_Manager class | |
| 478 | +* REFACTOR: WP_Optimize_WebP class | |
| 479 | +* REFACTOR: WP_Optimize_WebP_Images class | |
| 480 | +* TWEAK: Added an additional check to prevent SplFileInfo::getSize() RuntimeException in WP_Optimize_Utils::get_folder_stats() | |
| 481 | +* TWEAK: All in One SEO plugin compatibility issue | |
| 482 | +* TWEAK: Cache - Inconsistent REST cache filenames due to query parameter order | |
| 483 | +* TWEAK: Cache - Set the purge old cache cron schedule based on the Cache lifespan setting | |
| 484 | +* TWEAK: Ensure parsed result is an array in WPO_DB_Table_Analysis::get_query_table() | |
| 485 | +* TWEAK: Exclude GIF from being converted to WebP with `wpo_webp_convert_compressed_images` cron job | |
| 486 | +* TWEAK: Optimized `wpo_username_from_cookies()` to avoid repeated database queries per request | |
| 487 | +* TWEAK: Precheck for existing WebP format of file before running WebP conversion | |
| 488 | +* TWEAK: Remove redundant code that is not reachable. | |
| 489 | +* TWEAK: Resolved edge cases in CapoJS | |
| 490 | + | |
| 491 | += 4.5.3 - 29/Apr/2026 = | |
| 492 | +* SECURITY: Prevented path traversal security risk. Thanks to Wordfence for the responsible disclosure | |
| 493 | + | |
| 386 | 494 | = 4.5.2 - 20/Apr/2026 = |
| 387 | 495 | |
| 388 | 496 | * FIX: Bug preg_match() fails on wildcard * patterns in browser agents exclusion list |
| 389 | 497 | * FIX: Cache - purge the cache when a plugin is auto-updated |
| @@ -704,112 +812,8 @@ | ||
| 704 | 812 | * TWEAK: Unused Images - Unused tab displays multiple images for compressed images with WebP Conversion |
| 705 | 813 | * TWEAK: Prevent multiple AJAX requests being generated by repeated clicks on the "Purge Cache" button |
| 706 | 814 | * TWEAK: Call the `litespeed_finish_request()` function when attempting to close browser connection on LiteSpeed servers |
| 707 | 815 | |
| 708 | -= 3.3.1 - 06/Mar/2024 = | |
| 709 | - | |
| 710 | -* FIX: Cache - Compatibility issue with Jetpack's infinity scroll feature | |
| 711 | -* FIX: Cache - Don't cache activity stream (ActivityPub plugin compatibility) | |
| 712 | -* FIX: Cache - Page not cached comment is added to `robots.txt` | |
| 713 | -* TWEAK: Fix PHP warnings when server variables are not available | |
| 714 | -* TWEAK: Fix Unexpected response alert and PHP warning when cache preloading is triggered manually | |
| 715 | -* TWEAK: Migrate from setInterval to WP heartbeat API to refresh information about backend tasks | |
| 716 | -* TWEAK: Optimization of the WebP Implementation | |
| 717 | -* TWEAK: Update dashboard notice to include all of our plugins | |
| 718 | -* TWEAK: Update the footer review prompt | |
| 719 | - | |
| 720 | -= 3.3.0 - 31/Jan/2024 = | |
| 721 | - | |
| 722 | -* FEATURE: Premium - Ability to preload and purge caches from individual post/page | |
| 723 | -* FIX: Premium - Unused Images - Recognise Elementor's Container, and Section widget background images | |
| 724 | -* FIX: Avoid having repeated minified scripts in the same bundle, it breaks the code in some specific cases | |
| 725 | -* FIX: Cache - TranslatePress compatibility - Post updates purges cache for all related translated languages | |
| 726 | -* FIX: Only try to parse canonical URLs if there is a path or querystring, needed for WPML with multi-domain compatibility | |
| 727 | -* TWEAK: Add cron de-scheduling of all wpo_* events during plugin uninstall | |
| 728 | -* TWEAK: Cache - Always add source code comment about page not being cached, but only add details when WP_DEBUG is ON | |
| 729 | -* TWEAK: Cache - Fix issue with excluding encoded (non-latin) URLs | |
| 730 | -* TWEAK: Do not attempt to close browser connection when the context is not an AJAX action | |
| 731 | -* TWEAK: Minify - Logging more information about why minify static assets cache gets invalidated and regenerated | |
| 732 | -* TWEAK: Revert to the original `matthiasmullie/minify` repository after confirming resolution of previous issues | |
| 733 | -* TWEAK: Setup Cron job to clear failed smush tasks from DB | |
| 734 | -* TWEAK: Using clear text user agent strings instead of regular expressions to identify web browsers for improved clarity | |
| 735 | -* TWEAK: Updater library in the Premium version updated to the current release series | |
| 736 | - | |
| 737 | -= 3.2.22 - 23/Nov/2023 = | |
| 738 | - | |
| 739 | -* TWEAK: Cache - Show a notice in the admin if the config file is missing and caching is enabled | |
| 740 | -* TWEAK: Added support for new emoji styles related hooks introduced in WordPress 6.4 | |
| 741 | -* TWEAK: Database - Fix "Optimize database tables" stuck loading state | |
| 742 | -* TWEAK: Premium - Cache - Style improvement for the select2 box from advanced cache settings | |
| 743 | -* TWEAK: Premium - Images - Fix issues with avif images in the unused images feature | |
| 744 | -* REFACTOR: Wrapping most of the external links in the WPO settings pages with the appropriate function | |
| 745 | -* REFACTOR: Remove unused code | |
| 746 | - | |
| 747 | -= 3.2.21 - 18/Oct/2023 = | |
| 748 | -* FIX: Prevent PHP fatal error when updating from older versions of WP-Optimize | |
| 749 | - | |
| 750 | -= 3.2.20 - 16/Oct/2023 = | |
| 751 | - | |
| 752 | -* FIX: WebP - Performance issue because of possible infinite loop | |
| 753 | -* FIX: Cache purging occurred prior to the cache lifespan expiration | |
| 754 | -* FIX: Premium - Smush - Do not consider images in trashed posts as unused | |
| 755 | -* TWEAK - Remove extra slash from plugin asset urls and paths | |
| 756 | -* TWEAK: Image - Add a tooltip next to the restore button on the edit media screen | |
| 757 | -* TWEAK: Premium - Prevent PHP deprecated warning when generating variations from attributes for new WooCommerce variable products | |
| 758 | -* TWEAK: Premium - Purge cache when the `Variation Swatches for WooCommerce` plugin settings get updated | |
| 759 | -* TWEAK: Premium - Settings - Style improvement for the `Purge cache permissions` select2 box | |
| 760 | -* TWEAK: Recognise LearnDash plugin tables in database optimization | |
| 761 | -* TWEAK: Remove empty `uploads/.htaccess` file and remaining cron events | |
| 762 | -* TWEAK: Smush - Disable server info in smush logs by default | |
| 763 | -* TWEAK: Smush - Resolve double log entries when compressing a single image from the media library metabox | |
| 764 | -* TWEAK: Prevent unwanted PHP notice upon update | |
| 765 | - | |
| 766 | -= 3.2.19 - 15/Sep/2023 = | |
| 767 | - | |
| 768 | -* FIX: Cache - Relevant caches are now purged upon updating homepage display settings and posts per page settings | |
| 769 | -* FIX: Minify - Multiline content inside textareas break after exporting and importing settings | |
| 770 | -* FIX: Smush - Images are not compressed with default (image quality = 100) settings | |
| 771 | -* FIX: Premium - Cache - Caching stops working when WordPress salt keys contain backslash (\) character | |
| 772 | -* FIX: Premium - User per role cache not working when tables do not have `wp` prefix | |
| 773 | -* FIX: Premium - When lazy loading is enabled, the picture tag in initial viewport is not visible | |
| 774 | -* TWEAK: Fixed date format and timezone in the cache last modification comment according to the site configuration | |
| 775 | -* TWEAK: Fixed spelling errors in the repository | |
| 776 | -* TWEAK: Minify - The process of purging cache for 3rd party caching solutions now works properly when multiple other solutions are present | |
| 777 | -* TWEAK: Premium - Lazy load - Added Jetpack, Optimole, Rocket Lazy Load, and Smush (WPMU Dev) plugins to the incompatibility notice | |
| 778 | -* TWEAK: Prevent PHP warning upon installing themes from the WordPress repository | |
| 779 | -* TWEAK: Update the composer package yahnis-elsts/plugin-update-checker for PHP 8.2 compatibility | |
| 780 | - | |
| 781 | -= 3.2.18 - 11/Aug/2023 = | |
| 782 | - | |
| 783 | -* FIX: A bug in the v3.2.17 release that caused certain database optimization buttons to be disabled has been fixed | |
| 784 | -* TWEAK: Reset WebP serving method upon updating to version 3.2.18 | |
| 785 | - | |
| 786 | -= 3.2.17 - 08/Aug/2023 = | |
| 787 | - | |
| 788 | -* FIX: Automatically compress newly-added images feature now works on multisite in case of attachment ID is the same in both sites | |
| 789 | -* FIX: Minify - No separate try-catch blocks for same handle | |
| 790 | -* FIX: Premium - Unused Images - Recognise Elementor Carousel, Slides, Flip Box, and Site logo widget images | |
| 791 | -* FIX: Premium - Prevent memory exhausted PHP fatal error when using unused images feature with Elementor | |
| 792 | -* TWEAK: External links will open in new tab/window | |
| 793 | -* TWEAK: Remove `htaccess-capability-tester` dependency | |
| 794 | -* TWEAK: Remove residue folders in `uploads/wpo` | |
| 795 | - | |
| 796 | -= 3.2.16 - 06/Jul/2023 = | |
| 797 | - | |
| 798 | -* FIX: HTML minify should not remove `title` tag added by AIOSEO | |
| 799 | -* FIX: Premium - Fetching unused images data is incorrect when previous task queue is not properly unlocked | |
| 800 | -* FIX: Premium - Unused Images - Recognise Elementor background images | |
| 801 | -* TWEAK: Premium - Prevent conflicts between the minify feature and the `YITH Point of Sale for WooCommerce` plugin | |
| 802 | -* TWEAK: Premium - Compatibility issue with Smart Slider 3 | |
| 803 | -* TWEAK: Suppress PHP warnings caused by WebP converter | |
| 804 | -* TWEAK: Database optimization - Prevent duplicate AJAX requests, minor code improvements | |
| 805 | -* TWEAK: Smush - Add a cron job to run pending image compressions, ensuring completion of the process even if bulk image compression encounters interruptions or failures | |
| 806 | -* TWEAK: Clean up files on uninstall | |
| 807 | -* TWEAK: Added compatibility for `Custom Permalinks` plugin | |
| 808 | -* TWEAK: If minifying is enabled, then check that the purge cron event exists (not only upon plugin activation) | |
| 809 | -* REFACTOR: Premium - Unused Images - Separate classes for Beaver Builder, Estatik, and Yoast SEO plugins | |
| 810 | -* FIX: Premium - WP CLI commands permission issues solved | |
| 811 | - | |
| 812 | 816 | [See changelog for all versions](https://plugins.svn.wordpress.org/wp-optimize/trunk/changelog.txt). |
| 813 | 817 | |
| 814 | 818 | == Upgrade Notice == |
| 815 | -* 4.5.2: A lot of bug fixes and tweaks - a recommended update for all | |
| 819 | +* 4.7.0: A new Overview Dashboard, and a lot of tweaks and fixes - a recommended update for all | |