=== WP Rollback Pro - Rollback Plugins and Themes === Contributors: dlocc Tags: rollback, revert, downgrade, version, plugins Requires at least: 6.5 Tested up to: 6.9 Requires PHP: 7.4 Stable tag: 1.3.0 License: GPLv3 License URI: http://www.gnu.org/licenses/gpl-3.0.html Rollback any WordPress plugin or theme — including premium assets you're already licensed to use — with advanced controls and Plugin Vault access built in. == Description == Quickly and easily rollback any theme or plugin from WordPress.org to any previous (or newer) version without any of the manual fuss. Works just like the plugin updater, except you're rolling back (or forward) to a specific version. No need for manually downloading and FTPing the files or learning Subversion. This plugin takes care of the trouble for you. = 🔙 Rollback WordPress.org Plugins and Themes = While it's considered best practice to always keep your WordPress plugins and themes updated, we understand there are times you may need to quickly revert to a previous version. This plugin makes that process as easy as a few mouse clicks. Simply select the version of the plugin or theme that you'd like to rollback to, confirm, and in a few moments you'll be using the version requested. No more fumbling to find the version, downloading, unzipping, FTPing, learning Subversion or hair pulling. = 💎 Plugin Vault: Roll Back Premium Plugins and Themes = WP Rollback Pro includes access to Plugin Vault — a shared, verified library of premium plugin and theme version archives contributed by Pro users. If you hold a valid license for a premium plugin or theme, you can roll back to any version available in the Vault without needing to have archived it yourself in advance. **Important:** Plugin Vault is intended exclusively for users who hold a valid, active license for the plugin or theme being rolled back. Using Plugin Vault to access software you are not licensed to use is a violation of the respective product's license terms. WP Rollback does not distribute, sell, or grant licenses for any third-party software. All intellectual property rights remain with the respective plugin and theme authors. Every version in Plugin Vault is verified by SHA-256 checksum before storage and again before installation, ensuring the integrity of every rollback. = 🗂️ Local Version Archives = In addition to Plugin Vault, WP Rollback Pro automatically creates a local backup archive of the current version of any plugin or theme before each update. These archives are stored on your server and are accessible directly from the WP Rollback UI for one-click restoration. = Muy Importante (Very Important): Always Test and Backup = **Important Disclaimer:** This plugin is not intended to be used without first taking the proper precautions to ensure zero data loss or site downtime. Always be sure you have first tested the rollback on a staging or development site prior to using WP Rollback on a live site. We provide no (zero) assurances, guarantees, or warranties that the plugin, theme, or WordPress version you are downgrading to will work as you expect. Use this plugin at your own risk. = Translation Ready = Do you speak another language? Want to contribute in a meaningful way to WP Rollback? There's no better way than to help us translate the plugin. This plugin is translation ready. Simply header over to the WP Rollback [translation project](https://translate.wordpress.org/projects/wp-plugins/wp-rollback/) that's powered by WordPress.org volunteer translators. There you can contribute to the translation of the plugin into your language. = Support and Documentation = We answer all free user support requests [on the WordPress.org support forum](https://wordpress.org/support/plugin/wp-rollback). For pro users, please submit your questions to [WP Rollback Pro support](https://wprollback.com/?utm_campaign=free-plugin&utm_medium=free-plugin&utm_source=readme). WP Rollback was created to be as intuitive to the natural WordPress experience as possible. We believe that once you activate WP Rollback, you'll quickly discover exactly how it works without question. **BUT!!** We do have documentation on our website. See [WP Rollback Documentation](https://docs.wprollback.com/?utm_source=free-plugin&utm_medium=readme&utm_campaign=documentation). == Installation == = Minimum Requirements = * WordPress 6.5 or greater * PHP version 7.4 or greater * MySQL version 5.0 or greater = Automatic installation = Automatic installation is the easiest option as WordPress handles the file transfers itself and you don't need to leave your web browser. To do an automatic install of WP Rollback, log in to your WordPress dashboard, navigate to the Plugins menu and click Add New. In the search field type "WP Rollback" and click Search Plugins. Once you have found the plugin you can view details about it such as the point release, rating and description. Most importantly of course, you can install it by simply clicking "Install Now". = Manual installation = The manual installation method involves downloading our donation plugin and uploading it to your server via your favorite FTP application. The WordPress codex contains [instructions on how to do this here](http://codex.wordpress.org/Managing_Plugins#Manual_Plugin_Installation). = Updating = Automatic updates should work like a charm; as always though, ensure you backup your site just in case. == Frequently Asked Questions == = Is this plugin safe to use? = Short answer = Yes. Longer answer = It depends on how you use it. WP Rollback is completely safe because all it does is take publicly available versions of the plugins you already have on your site and install the version that you designate. There is no other kinds of trickery or fancy offsite calls or anything. BUT!!! Safety largely depends on you. The WordPress website admin. We absolutely do NOT recommend rolling back any plugins or themes on a live site. Test the rollback locally first, have backups, use all the best practice tools available to you. This is intended to make rolling back easier, that's all. = Why don't I see Vault versions for my premium plugin or theme? = Plugin Vault coverage depends on community contributions — a version becomes available after a Pro user with that plugin installed has updated it while WP Rollback Pro was active. If the version you need isn't available yet, check whether a local backup archive exists under Tools > WP Rollback > Archives, or wait for coverage to grow as more Pro users contribute. Vault access also requires a valid, active WP Rollback Pro license. If Vault versions are not appearing, verify your license is active under Tools > WP Rollback > License. = I rolled my [insert plugin name] back to version X.X and now my site is broken. This is your fault. = Nope. We warned you in **bold** print several times in many places. And our plugin delivered exactly what it said it would do. May the Gods of the internet pity your broken site's soul. = Where is the complete documentation located? = The documentation for this plugin is located on our the [WP Rollback site](https://docs.wprollback.com/?utm_source=pro-plugin&utm_medium=readme&utm_campaign=documentation). This is where we make regular updates. = Can this plugin be translated? = Yes! All strings are internationalized and ready to be translated. You can either use your favorite translation plugin, or [help translate the plugin on WordPress.org](https://translate.wordpress.org/projects/wp-plugins/wp-rollback/). == Screenshots == 1. The WP Rollback Dashboard screen. 2. WP Rollback Pro supports premium theme rollbacks. == Upgrade Notice == This is the first version of this plugin. It is a tool for your convenience. Rollback at your own risk! == Changelog == = 1.3.0 = * New: Plugin Vault — roll back premium plugins and themes (Gravity Forms, WooCommerce, Elementor, and more) using a shared library of version archives contributed by WP Rollback Pro users. No manual uploads required; your site automatically contributes current versions to the Vault in the background before each update. Requires a valid, active license for the plugin or theme being rolled back. * New: Automatic Vault contributions — WP Rollback Pro silently contributes your current premium plugin and theme versions to Plugin Vault before each update, growing the shared library for all Pro users without any manual action. * New: Community trust model — Vault versions must be independently contributed by multiple Pro installs before becoming available. This quorum-based verification ensures every Vault version comes from genuine, unmodified files. * New: SHA-256 integrity verification — every Vault version is checksummed at upload time and verified again before installation, guaranteeing end-to-end file integrity. * New: Version source badges in the rollback UI — "Vault", "Local", and "Repo" labels on every version make it immediately clear where each available version comes from. * Enhancement: Local backup archives now appear directly in the rollback version list alongside Plugin Vault and WordPress.org versions, giving you a single unified view of every version available for rollback. * New: Added "Rollback Plugins" and "Rollback Themes" quick-access links to the native WordPress plugins.php and themes.php page headers, appearing alongside the existing "Add New Plugin" / "Add New Theme" buttons for faster navigation to WP Rollback Pro. * Fix: "Return to Plugin/Theme Screen" button after a completed rollback now redirects correctly when WordPress is installed in a subdirectory. * Enhancement: Added Lottie success animation to the rollback complete screen with a professional green checkmark animation, replacing the plain text-only completion state. * Enhancement: Redesigned "What's next?" section on the complete screen — icon-backed step cards with contextual WordPress icons replace the plain ordered list. * Enhancement: Redesigned rollback confirmation modal — replaced the generic admin table with a visual version comparison (installed version vs. target version side by side), making the rollback action immediately legible. * Enhancement: Redesigned rollback progress modal — shimmer skeleton rows prevent layout jump before steps load, running step messages appear in real-time, duplicate step title text is suppressed while running, and the spinning header icon switches to a checkmark once all steps complete. * Fix: Rollback complete modal no longer shows a spurious scrollbar at typical viewport heights. = 1.2.2 = * Enhancement: Users can now reinstall the currently installed version of a plugin or theme. The rollback button now adapts its label based on the selected version — "Reinstall" when selecting the current version, "Rollback" when selecting an older version, and "Update" when selecting a newer version. Confirmation messaging updates accordingly for each action type. * Fix: Resolved critical issue where rolling back a plugin with an uninstall.php file or registered uninstall hook would trigger the plugin's uninstall routine, potentially deleting database tables, options, and other user data. Rollbacks now use direct filesystem deletion matching WordPress Core's Plugin_Upgrader behavior. = 1.2.1 = * Fix: Resolved fatal error that occurred on servers without the PHP ZipArchive extension when any plugin or theme was updated. The plugin now automatically uses WordPress Core's PclZip library as a fallback, ensuring backups work on all server configurations and updates never fail. * Fix: Column sorting now works correctly for Version and Status columns in plugin/theme lists and all columns in Activity Log and Archives pages. * Enhancement: Added PclZip fallback for backup creation when ZipArchive extension is unavailable, ensuring universal compatibility across all hosting environments. * Enhancement: Improved error handling throughout the backup system to catch both Exceptions and PHP Errors, preventing any interruption to plugin/theme updates. * Enhancement: Optimized DataView components with reusable hooks and shared utilities, reducing code duplication and improving performance. = 1.2.0 = * New: Added smart modal for viewing and editing rollback notes in the Activity Log with separate view and edit modes for better user experience. * New: Activity Log notes can now be viewed in a read-only mode before editing, making it clear when you're viewing versus editing. * New: Added plugin row meta links to support, documentation, and the WP Rollback Dashboard page for easier navigation. * New: "View Note" and "Add Note" buttons dynamically change based on whether a note exists, providing clear context for each action. * Fix: Resolved fatal error when Visual Composer page builder is active. The plugin now properly validates screen IDs to handle cases where page builders return non-standard screen ID values. = 1.1.4 = * New: Re-added "Trunk" as an available rollback version option for testing development versions. * New: Added support for pre-release versions including beta, alpha, and RC versions (e.g., 15.1-beta.2, 15.2-a.7, 2.5.0-RC1). * Enhancement: Improved version sorting algorithm to properly order pre-release versions alongside stable releases. * Tweak: Added smooth rotating animation to loading indicators for better visual feedback. * Tweak: Updated compatibility to WordPress 6.9. = 1.1.3 = * Fix: Changed the filesystem type in BackupService from WP_Filesystem_Direct to WP_Filesystem_Base to allow for broader compatibility with different filesystem implementations. = 1.1.2 = * Fix: Updated the WP_Filesystem call in BackupService to set $allow_relaxed_file_ownership to true, enabling support for Group/World writable files. This change aims to prevent potential issues with file permissions during backup operations. Thanks to @hanno from WP.org support forums. = 1.1.1 = * Fix: Resolved critical issue where WooCommerce and other plugins with autoloaders would cause fatal errors during rollback. The plugin is now properly deactivated before deletion to prevent PHP errors when files are removed. = 1.1.0 = * New: Added Archives page to view and manage all premium plugin and theme backups created by WP Rollback Pro. Access it from Tools > WP Rollback > Archives. * New: Archives DataView displays comprehensive information about each backup including version, creation date, file size, and who created it. * New: Download archived plugin and theme versions directly from the Archives page with a single click. * New: Filter archives by type (plugins vs themes) using the tabbed interface. * New: Added a tabbed navigation interface to the top plugin header. * New: Configurable archive limits - Pro users can now set the number of version archives per asset (1-100, default 25) via Settings > Archives tab. Free version maintains a fixed limit of 5 archives per asset. * Enhancement: Premium plugin and theme archives are no longer recreated if an archive already exists for the current version. This improves performance during updates and rollbacks by skipping unnecessary backup operations. = 1.0.3 = * New: Added maintenance mode support during rollback operations to prevent site access while files are being replaced, following WordPress Core update patterns. * Improvement: Enhanced rollback safety with automatic maintenance mode cleanup that ensures your site never gets stuck in maintenance mode, even if a rollback fails. * Fix: Removed overly restrictive package validation that required plugin main files to match the plugin slug. This fix allows plugins like Visual Composer (with main file "plugin-wordpress.php") and other legitimate plugins with non-standard main file names to be rolled back successfully. * Fix: Resolved fatal error when using WP CLI bulk updates (`wp plugin update --all`) due to missing string type check. The backup service now properly handles cases where the package parameter is boolean instead of a string during bulk operations. * Fix: WordPress Multisite network admin pages now properly load rollback scripts and styles. * Fix: Resolved package validation errors on multisite installations where ZIP files were incorrectly flagged as invalid. * Fix: Fixed multisite upload size restrictions that prevented rollbacks due to the default 1MB limit. = 1.0.2 = * Fix: Premium asset backup functionality now properly creates backups when non-WordPress.org plugins and themes are updated. Due to a refactor of the logic the logic was only being enabled in the WP Rollback free plugin rollback logic. This fix also resolved an issue with the failed "Cannot validate package" error. * Fix: Resolved fatal error when attempting to rollback plugins that return boolean false for requires_php field instead of a string value. This fix ensures proper type validation for WordPress requirement fields. * Fix: Corrected the link in FailedTemplate.jsx to point to the updated documentation for rollback failures. * Fix: Plugin and theme names containing HTML entities (like &, <, etc.) now display correctly in rollback modals instead of showing raw HTML characters. = 1.0.1 = * Fix: Prevent PHP error when a plugin (like Jetpack Sync) does not return data in format expected. = 1.0.0 = * Initial plugin release. Yippee!