WP STAGING | PRO Changelog Archive

5.8.7 Release October 1, 2024

  • New: Add newsfeed to the WP Staging user interface in DE and EN language #3772
  • Enh: Show notice when wpstg-restore file exists in root path. #3552
  • Enh: Refactor some code from wpstg-backup.js file #3777
  • Fix: Obfuscating log file names to avoid prying eyes. #3782
  • Fix: Make sure to dont generate login link if PRO version not defined. #3798
  • Fix: Undefined CURL constant while gathering system info. #3769
  • Fix: Use correct i18n title for delete confirm modal popup. #3800
  • Fix: Can’t install core version when install WP STAGING PRO 5.8.6. #3790
  • UX: Make sure that `Edit Backup Modal` looks good. #3776
  • Dev: Change the order of bootstrapping Pro/Basic Service, so that these are registered early. #3761

5.8.6 Release September 22, 2024

  • Enh: Make all JavaScript included strings translatable and implement i18n to them. #3418
  • Fix: Fatal error due to calling php_uname if it is disabled by hosting providers. #3773
  • UX: Visually improve log modal. #3746
  • Dev: DRY code between standalone restore tool and core plugin. #3525
  • Dev: DRY Success and Process Modal across Backup, Staging and other general operations. #3753

5.8.5 Release September 17, 2024

  • New: Compatible up to WordPress 6.6.2
  • New: Compatible up to PHP 8.4.0 beta5
  • New: Add feature to “Disable WooCommerce Action Scheduler for Subscriptions” on staging sites. (Pro) #3470
  • New: Make backup v.2 compatible on 32 bit PHP versions. #3714
  • New: Purge LiteSpeedCache after performing push.(Pro) #3693
  • New: Show count of total and selected database tables before performing push. #3724
  • New: Log all WP Staging global and specific tasks settings. #3633
  • New: Show memory exhausted error in process modal. #3710
  • Fix: Preserve login by link data on staging site after update process. (Pro) #3731
  • Fix: Adjust php 5.6 compatible message and disable email footer in feedback emails. #3696
  • Fix: Delete `W3 Total Cache` drop-in files during push job when the `Push Changes > Uninstall all plugins/themes on production site` option is selected. #3620
  • Fix: Stop backup creation earlier when the server disk is full. #3606
  • Fix: Global translation po & mo files are not recognized. Load translations files from wp-content/languages/plugins folder. #3757
  • Fix: Automatically send request using GET method to fire queue ajax if POST method doesn’t work. Add filter `wpstg.queue.request.force_get_method` to force use GET method. Useful in case if somehow the `POST` method for ajax request is blocked by hosting provider or other plugins. #3705
  • Fix: Resolve console errors caused by duplicate and missing HTML element IDs. #3702
  • Fix: Don’t use the same dropbox data for live and staging site. (Pro) #3739
  • Fix: Unable to write file header for v2 backups on Windows OS. #3694
  • UX: Make the hamburger icon and responsive menu look more appealing in light and dark mode. #3703
  • UX: Show license information on Settings, System Info and WP Staging | Restore page. (Pro) #3726
  • UX: Make the locked backup loader for ongoing background backups look good in dark and light mode. #3721
  • UX: Improve restore modal description to avoid confusion about what is being restored. List all the backup restore related filters in the restore logs. #3671
  • UX: Improve pro banner in free version. (free) #3679
  • UX: Improve Upload modal, add notice to reload page after uploading backup via FTP. #3672
  • Dev: Refactor namespace and files. #3749
  • Dev: Add wpdb DB helper class with crud operations for `options` table in playwright testing. #3712
  • Dev: Add PHP 8.4 in test suite. Make unit and e2e tests pass with the beta version of PHP 8.4. #3662

5.8.4 Release August 27, 2024

  • New: Compatible up to WordPress 6.6.1
  • New: Add filter `wpstg.backup.restore.exclude_backup_parts` to skip plugins, mu-plugins, themes, uploads, database, other content and extra root folder if included during backup restore. #3625
  • New: Add option to download the WP Staging Restore script from wp-staging.com. #3376
  • New: New navigation bar that ensures a visually appealing user interface across all screen resolutions. #3473
  • New: Show count of total and selected database tables while doing cloning job. #3634
  • Enh: Log installed plugins and themes before performing a push job.(Pro) #3613
  • Enh: Disable “Load Remote Backups” button while loading backups. (pro) #3570
  • Enh: Improve error message when unable to add backup metadata or files-index in the backup in final step. #3396
  • Enh: Show triangle icon instead of checkbox in front of Advanced Settings link. #3593
  • Enh: Show OS and PHP architecture in system log. #3621
  • Enh: Create human-friendly default names for staging sites if no optional staging name is provided. “Star Trek – Live long and prosper!” #3614
  • Fix: Make clear what login credentials to use when WP Staging | Restore standalone installer is used on a new site after backup restore. #3680
  • Fix: Validate database prefix when creating a staging site to confirm it does not begin with the production site database prefix. #3553
  • Fix: Increase delay interval between backup status requests from 5 seconds to 8 seconds to reduce chances of 503 errors. Add filter `wpstg.backup.interval.status_request` to customize this value. #3611
  • Fix: Show actual installed free version in system information. #3594
  • Fix: Make sure that the `Reset` process works correctly even when the staging site database has FOREIGN_KEY_CHECKS enabled. #3686
  • Fix: Remove duplicate ajax requests for backup related operations. #3664
  • Fix: Make the validate icon displayed correctly. #3688
  • Fix: Search and replace does not work when url contains ‘www.’. #3631
  • Fix: Make `Ninja Forms` work properly after performing backup restore. #3608
  • Dev: Fix e2e cloning tests. #3649
  • Dev: Move all views/templates/* to views/* folder. Also fix `Undefined array key page` warning. #3690
  • Dev: Move MemoryExhaust logic to src/Framework namespace. #3666
  • Dev: Replace internal email address #3541
  • Dev: Move classes/services out of Backup namespace that could be used with Cloning feature. #3668
  • Dev: Remove the wpdb dependency from DatabaseImporter class by decoupling the database logic through DatabaseInterface. #3642
  • Dev: Move all views to src/views/* folder. Move blank-theme and default wp-config.php to src/resources folder. #2825
  • Dev: Add v1 and v2 backup specification. #3518
  • Dev: Set up playwright env. #3578
  • Dev: Replace `docker-compose` with `docker compose` in fast tests, as `docker-compose` went missing in Github Actions. #3660
  • Dev: Move all classes from legacy folder Backend/Pro/Licensing to Pro/License. #2866
  • Dev: Improve npm commands to build and run Windows docker setup. #3012
  • Dev: Replace shorthand ‘-P’ by its option name ‘–service-ports’ in docker command that runs playwright. #3697

5.8.3 Release July 29, 2024

  • New: Compatible up to WordPress 6.6.1
  • UX: Make backup log window more appealing and consistent. #3604
  • UX: Refresh error message when clicking the backup menu tab. #3587
  • Fix: Disable email notifications when a backup successfully runs. #3517
  • Fix: Properly catch fatal errors when merging logs into single file when sending backup error report. #3573
  • Fix: Make the backup restoreable even when it has not correctly replaced table constraint(s). #3595
  • Fix: Update new admin login password if user account already exists while creating staging site. (Pro) #3598
  • Dev: Refactor backup remote storage downloading code. (Pro) #2751

5.8.2 Release July 19, 2024

  • New: Compatible up to WordPress 6.6
  • New: Add super admin role when creating login link. Existing staging sites need to be updated. (Pro) #3520
  • New: Redesign process logs to make them more appealing and robust, ensuring they look good. #3281
  • Security: Encrypt sensitive information when downloading the system info files. #3305
  • Enh: Implement a mechanism that can be used to better log failure of jobs. #3436
  • Enh: Add upgrade routine to enable email notifications for free version by default. #3491
  • Enh: Add a tooltip to the backup modal explaining the function of “Validate Backup”. #3513
  • Fix: Backup Restore failed to read the cache file of old object data when using PHP 7.2. #3539
  • Fix: Make sure to backup all other files in the WP root directory when running background backup. #3564
  • Fix: Ensure that backup process works properly when attempting to create multipart backup with free version. #3444
  • Fix: Show correct timestamp when retrieving remote backup from an FTP storage provider. (Pro) #3499
  • Fix: Google authentication throws exception when user cancels backup auth process. (Pro) #3510
  • Fix: Fatal error on activation of WP Staging Pro on PHP 7.0. (Pro) #3580
  • Fix: Sometimes warnings were generated during PUSH when trying to cleanup tmp directory for plugins and themes. #3588
  • UX: Ensure smooth transition of HTML attributes in advanced options. #3535
  • UX: Toggle `Email Address` and `Slack Webhook URL` fields when email and slack notifications enabled. #3532
  • Dev: Don’t rerun CI workflows when one of the changelogs is adjusted. #3493
  • Dev: Failing unit tests at \NoticesTest::shouldShowDisabledOptimizerNotice(). #3601

5.8.1 Release July 4, 2024

  • Fix: Error 500 when listing backup due to open_basedir restriction on ABSPATH. (Pro) #3548

5.8.0 Release July 1, 2024

  • New: Compatible to WordPress 6.5.5
  • New: Enable remote backup loading for dropbox storage provider. (Pro) #3475
  • New: Add ‘Upload to Cloud’ button to upload existing local backups to cloud storage. (Pro) #3331
  • New: Add option to backup custom directories in WordPress root path. #2903
  • New: Add backup notifications via Slack. (Pro) #3297
  • New: Add backup email notifications to WP Staging free version. #3297
  • Enh: Show a message when ajax requests get blocked by a firewall rule. #3449
  • Fix: Magic login link does not work when it is used more than one time. Requires updating existing staging sites to fix this. (Pro) #3512
  • Fix: Handle staging and backup creation when file name contains new line character. #3417
  • Fix: Make “copy to clipboard” button works properly in all browsers, regardless of protocol (HTTP, HTTPS). #3443
  • Fix: Show correct folder count if the staging site file structure contains multiple plugin and theme folders. #3419
  • Fix: Prevent backup retention from being modified when scheduling backup. #3422
  • Fix: Show ‘Settings form’ after authenticating with storage providers Google Drive and Dropbox. #3356
  • Fix: The site URL is not replaced correctly in the blog table on PUSH for network subsites that have a different domain than the main site. (Pro) #3501
  • Fix: Several PHP warnings when using RESET on an existing staging site. #3438
  • Fix: Optimize and clean up CSS. Fix X and Github icons. Remove of ‘!important’ declarations in dark theme. #3448
  • Fix: Validate new admin account email address before cloning. #3467
  • Fix: Make sure appropriate message is displayed after successful backup. #3474
  • Fix: Some files may not be scanned and/or copied during staging site creation if their relative path to ABSPATH contains the value of ABSPATH. #3476
  • Fix: Use wp_kses instead of esc_html when logging backup message in logger, to keep json formatting for messages. #3536
  • Dev: Add unit test to make sure file extraction task works for multiple requests. #3481
  • Dev: Improve basic performance cest e2e and reduce flakiness. #3522
  • Dev: Rename Compressor service to Archiver service to match what this service does. #3496
  • Dev: DRY multipart code, so that compression feature can be used with it. #3498
  • Dev: Add developer docs for the standalone installer script. #3235

5.7.1 Release June 10, 2024

  • Fix: Unable to restore backup when it contains many files, which requires extracting in multiple requests. #3477

5.7.0 Release June 6, 2024

  • New: Compatible up to WordPress 6.5.4
  • New: Automatic login to staging site after initial creation by creating a temporary login. #3198
  • New: Add option to run backup in background without keeping browser open. #3286
  • Security: Sanitize parameters in remote storage settings to prevent possible path traversal and executing of potential malicious code. #3461
  • Enh: Add support for Wordfence 2FA authentication in the WP Staging login form. #3358
  • Enh: Refactor dropbox and google drive sign in buttons. (Pro) #3405
  • Enh: Reducing plugin size by minifying js and css files and removing map files. #3279
  • Enh: Redesign plugin deactivation feedback form. #3000
  • Enh: Hide sensitive values in system info. #3447
  • Fix: Improve reliability and robustness of the background processor: Stalled actions will automatically be cancelled if they are in processing state for more than 15 mins. #3454
  • Fix: Backup by URl throws error “Invalid backup file content”. #3404
  • Fix: Standalone restorer randomly terminated while restoring large files. #3348
  • Fix: The backup version of WP Staging Restore is not up to date. #3425
  • Fix: Refactor the contact form. New default options for sending backup log files and accepting privacy policy. #3370
  • Fix: Ensure listing of remote backups and uploading of local backups to cloud storage works correctly. #3434
  • Fix: Hide sensitive fields (secret key, access key…) in backup storages settings. #3389
  • Fix: Don’t optimize the .htaccess as default any longer if server is litespeed. Revert to old behavior by using the filter wpstg.create_litespeed_server_config. #3409
  • Fix: Table Renaming Task fails during Restore and Push if database prefix contains capital letter(s) and database is hosted on Windows based OS system i.e. Microsoft Azure. #3372
  • Fix: Disconnect google drive account if it fails to refresh access token. #3388
  • Fix: Cloud storage options are overlapped by other elements. #3343
  • Fix: Don’t load and list remote backup for dropbox as it is not supported yet. (Pro) #3407
  • Dev: Refactor BackupValidateTask to BackupSignerTask to match the action it does. Also move the signer related logic to separate service. #3367
  • Dev: Add pre-requisite code for a new faster and more secure backup format. #2915
  • Dev: Add option in UI to validate backup files during backup creation. #3368
  • Dev: Auto eslint js files and format scss files during make watch. #3398
  • Dev: Add phpcs rule to make each file ends with only one empty line. #3390
  • Dev: Replace rollup-plugin-postcss with rollup-plugin-styles to have better control over source maps. #3429

5.6.0 Release May 13, 2024

  • New: Compatible up to WordPress 6.5.3
  • New: Implemented dark mode UX with options to switch between ‘Default OS Mode’, ‘Lite Mode’ and ‘Dark Mode’ #3261
  • New: Now you can restore backup of single site and/or multisite subsite to self or another multisite subsite. (Pro) #3240
  • New: Allow user to push all folders under (/wp-content/). #2760
  • New: Add the a new user role ‘visitor’ to share login link option. (Pro) #3332
  • Enh: Add type hinting for ProTemplateIncluder. #3337
  • Enh: Make sure to prevent other plugins from injecting their messages into WP Staging UI. #3364 #3036
  • Fix: Keep cloud storage connected to Google Drive even if files listing from remote storage fails. (Pro) #3347
  • Enh: Revamped system-info page, ‘Purge Backup Queue’ modal and moved JavaScript code to a separate file. #3262
  • Enh: Automatically exclude uploads folder during push if it is a symlink. #2989
  • Fix: Sync User Account feature duplicates existing user as administrator role. #3311
  • Fix: Backup restore stuck on importing users for subsite when restoring an old backup on single site. #3373
  • Fix: Make sure to handle fatal error due to missing COLLATE while creating ‘wp_wpstg_queue’ table for scheduled backup. #3359
  • Fix: Hide the ‘wp-content/wp-staging-sites’ folder from staging site directory selection, as it is always excluded during cloning. #3267
  • Fix: Show exact error message for open_basedir restriction error if destination directory does not have write permissions. #3116
  • Fix: Memory usage of the staging site is higher than of the live site. #3307
  • Fix: Make sure to only sync production site’s users fields that exist in cloned site’s users table. #3362
  • Fix: Send log files from last 14 days and compress them before sending. Add Contact Us button to error messages. #3323
  • Fix: Make sure to display default login link on custom login form if login is blocked by a security plugin with OTP or 2FA enabled. #3293
  • Fix: Ensure that the All in One Security Plugin (AIOS) isn’t disabled by the wp staging optimizer when AIOS’s salt option is enabled. #3351
  • Fix: Reconnect DB if mysql has gone away during update of queue table. #3354
  • Fix: Create backup folder in google drive, if it does not exist, before uploading to backup cloud provider. #3381
  • Fix: Make sure loading bar is removed once a WP Staging page is refreshed successfully #3365
  • Dev: Add end-to-end tests for the standalone installer script. #3025
  • UX: Make sure that backup cards always look good. #3345
  • UX: Make sure that automatic backup icon looks good. #3338
  • UX: Display backup name and cloud storage settings in ‘Edit Backup Plans’ Modal. #3299

5.5.0 Release April 22, 2024

  • New: Tested on WordPress 6.5.2
  • New: Add option to download and restore backup directly from cloud storage providers Google Drive, Amazon S3, OneDrive, FTP, SFTP. #1968
  • New: First release of the standalone WP Staging Restore tool. Add the constant WPSTG_ACTIVATE_RESTORER to wp-config.php if you want to test it. #2435
  • Fix: Generated create table DDL is corrupted during backup creation if table DDL contains multiple constraints with CASCADE, SET NULL, SET DEFAULT, RESTRICT or NO ACTION referentials actions. #3303
  • Fix: Backup Type missing in scheduling options. Resulting in creation of entire multisite backup even for just subsite backup on multisite. #3312
  • Fix: Resolve browser warnings due to invalid HTML syntax. #2490
  • Fix: Make sure to remove the loading placeholder after 5 seconds if the server call experiences delays or fails due to any error. #3294
  • Security: Use more secure implementation to invalidate expired login links. #3270
  • Security: Prevent accessing the system info from unauthenticated users. #3290
  • Security: Check if uploaded backup file is a valid WP Staging backup file before uploading it to the server. #3318 #3273

5.4.3 Release April 08, 2024

  • Enh: Show error message if custom selected destination path for staging site will be same as root of live sites folder. #3204
  • Enh: Show better backup logs and warnings if backup fails. #3263
  • Fix: On some server files were not properly extracted. Using a fallback function now. #3272
  • Fix: Fix condition to check custom destination path for staging site on basic version. #3282
  • Fix: Warning “Indirect modification of overloaded elements” of WP_Hook. #3155
  • Dev: Make sure the debug.log is kept clean from unwanted logs when running e2e tests. #3202
  • Dev: Refactor ‘ThirdParty’ namespace changing Framework/Support/ThirdParty to Framework/ThirdParty. #3224

5.4.2 Release April 02, 2024

  • New: Tested on WordPress 6.5.0
  • Fix: If endurance-page-cache mu-plugin is installed (on Bluehost and Hostgator) a staging site shows white page error then. #3216
  • Fix: Backup retention does not work for backups created on a staging site. #3138
  • Fix: Backup log entries could contain log entries from staging processing under certain circumstances. #3079
  • Fix: Moved tmp directory to wp-content/wp-staging/tmp to fix a cross-device link error on sites hosted on Azure. #3213
  • Fix: Make sure that there are no errors in console after uploading backup to remote storages. #3258
  • Fix: Handle complex table relation syntax on SQL dumper and restorer. #3259
  • Fix: Validate and handle null values before invoking strlen() to ensure compatibility and prevent runtime errors. #3127
  • Fix: Make network cloning more robust by supporting different combination of www prefix. #3230
  • UX: Make sure the loading placeholders are rendered properly over all pages. #3207
  • UX: Beautify “license invalid” messages. #3237
  • Enh: Don’t prefix html attribute ‘data’ by ‘wpstg’. #3048
  • Enh: Add pro clone features as inactive items to Actions button in wp staging free version. #3228
  • Dev: Add support for retrying failed tests in codeceptione2e suites. This is done to counter test flakiness. #3118
  • Dev: Update outdated code of wpstg uncomment command. #3245
  • Dev: e2e_backup_test make command was not using basic plugin when running basic tests. #3225
  • Dev: Adding improved logging. #3252

5.4.1 Release March 08, 2024

  • Enh: Remove files that were false-positive detected as malicious. #3184
  • Fix: Remove two css files accidentially loaded on the frontpage. #3208
  • Fix: Remove standalone installer – Not ready yet. #3218
  • Fix: Make sure to not encode single and double quotes while downloading log files. #3168

5.4.0 Release March 06, 2024

  • New: Add option to create a new admin user account for your staging site during it’s creation. #3087
  • New: Add option to use non-blocking process for uploading to FTP storage when using FTP extension to upload. #3103
  • New: Add advanced excludes option at WP CLI backup-create command. #3114
  • New: Add ‘Delete Settings’ button within the storage provider interface to facilitate the removal of the cloud provider configuration. #3108
  • New: Add support for Search Replace of urls in content of network subsites. #2960
  • New: Add option on edit staging site page for testing database connection. #3106
  • New: If uploads folder is symlinked exclude it from disk space calculation before creating a staging site. #3092
  • Enh: Update look and feel of backup scheduling modal. #3090
  • Enh: Add page loader for each page of the user interface. #3142
  • Enh: Add new upgrade buttons to header and license page. #3135
  • Enh: Add more information like database name to system information. #3125
  • Enh: Avoid scanning of excluded directories during the push process. #3049
  • Fix: Fatal error on old WordPress 4.4.32 due to using of get_current_network_id(). #3174
  • Fix: Base prefix wrongly replaced for users and usermeta tables in views when creating backup of views in multisite subsite. #3128
  • Fix: Prevent error while directory listing protection due to open_basedir restriction. #3180
  • Fix: Update free version plugin meta description to “Required by WP Staging Pro”. #3171
  • Fix: Remove redundant admin notices for invalid license keys during activation. #3139
  • Security: Fix a potential security error and add better sanitizing for backup title. #3152
  • Fix: Make sure EDD license checks are triggered only once. #3179
  • Fix: Google drive authentication not working properly under all circumstances. #3156
  • Fix: Selected custom tables on a staging site that had a different prefix than the prefix in the wp-config.php could not be pushed anymore. #3170
  • Fix: Prefix for user capabilities was not replaced when creating a backup of network subsite. #3129
  • Fix: The “Prefix” field was empty for listed staging sites if they were created in an external database and the prefix was not specified. #3166
  • Fix: The optimizer setting was shown as disabled, even if it was still active. #3151
  • Fix: Add loading icon beside ‘Refresh License Status’ button and adjusted loading bars on licensing page. #3185
  • Fix: Super (network) admins were not able to login with when network subsite backup was restored on a single site. #3191
  • Fix: Reference Error wpstgPro is not defined during staging site creation on FREE version. #3136
  • Fix: Make sure that backup plugin notice doesn’t overlap Create Staging Site button in UI. #3148
  • Fix: List of active plugins in system info is misleading. #2996
  • Fix: Make sure that mail setting page looks good on all screen resolutions. #3094
  • Fix: Incorrect process modal title for preserving data task. #3130
  • Fix: DRY properties in BackupMetadata and remove error message “trying to hydrate dto errors BackupMetadata::setCurrentNetworkId()” #3199
  • Dev: Update DI52 library to latest version for small performance gain. #3146
  • Dev: Fix missing adminer host on wpstg command. #3120
  • Dev: Load Basic or Pro service provider once other dependencies are loaded. #3160
  • Dev: Populate dev hosts from env variables to add to hosts file. #3122
  • Dev: Add adminer to dev tools for database management. #3112
  • Dev: Fast test fails on GitHub due to the missing of ‘wpstgBackupHeader.txt’ file, checksum needed to be updated each time. #3110
  • Dev: Update Github actions to latest version that uses Node 20 to avoid deprecation message Github CI. #3200

4.10.1 Release June 19, 2023

  • New: Bring the premium high-performance pro backup feature into the basic version to allow creating a periodic backup of the WordPress website including backup restoring. #1979 #2487
  • Enh: Display Google Drive account info permanently on the settings page. Remove the option to customize the Google drive redirect uri. #2399
  • Enh: New styled back button #2444
  • Fix: Database tables renaming is now done in multiple requests instead of a single request for both PUSH and RESTORE. This allow easily rename hugh number of tables on slow server without worrying about increasing PHP Script timeout limit #2392
  • Fix: On backup restore keep or remove the staging site mode depending upon the current site state. E.g. Restoring a backup of a staging site on a live site will remove the staging site mode #2392
  • Fix: Small JS errors related to the backup sidebar menu when clicking tabs on the main navigation #1979
  • Fix: Backup restore can fail if backup has different access token than current site #2481
  • Fix: Several php 8.x warnings on staging site push operation in wpstg debug log #2472
  • Fix: When cloning into external database NULLs were converted to empty strings in the staging site #2448
  • Fix: Backup created with free version can show a warning if it is restored with pro version #2497
  • Dev: Update google webdriver driver test credentials #2450

4.9.0 Release May 25, 2023

  • New: Compatible up to WordPress 6.2.2
  • New: Feature to disable WP Cron jobs on the staging site #2314
  • New: Button to unselect all staging site tables before cloning #2355
  • New: Add two-way encryption for backup storage credentials stored in the database. Read https://wp-staging.com/docs/wp-staging-encryption-setup/ #2310
  • New: Show selected plugins and themes count before cloning #2339
  • Enh: Beautify backup and staging log file format #2393
  • Enh: Append debug log to download system information #2441
  • Enh: Improved code to be compatible with PHPstan level 1 rules #2348
  • Enh: Improved code to be compatible with PHPstan level 2 rules #2419 #2459
  • Enh: Check if the option_name field contains the primary key before cloning #2386
  • Enh: Display the staging site name on generate login link screen #2432
  • Fix: Inaccurate performance values “queries per second” for backup restore #2327
  • Fix: Backup download URLs now support mixed http/https scheme #2376
  • Fix: Deprecation notice on PHP 8.2 / 8.1 #2389
  • Fix: Write the correct version number in wpstg.js when creating a free dist package #2431
  • Fix: Correct use of printf and gettext #2313
  • Fix: On backup creation MySQL Error 1118 row size too large error can appear #2422
  • Fix: Fix line-break issue during files-index validation when validating a backup on Windows OS that was created on Linux OS and vice versa #2402
  • Fix: Add Query Compatibility fix when restoring a database backup created on MariaDB with PAGE_COMPRESSED=`ON` on MySQL database #2401
  • Fix: PHP 8.1 warnings on backup creation due to using null value on wp_normalize_path #2453
  • Fix: Added method to handle sending email in free version with attachments #2417
  • Dev: Check if the Issue or PR Number exist in the changelog #2394

4.8.1 Release May 9, 2023

  • Fix: Remove custom global exception handler to avoid conflicts with other plugins #2424

4.8.0 Release May 5, 2023

  • New: Pro feature to allow generation of magic login links to staging site. Go to “Actions > Share Login Link”. This requires updating WP Staging Pro plugin on staging site #2204
  • New: Pro feature to sync active admin account. Go to “Actions > Sync User Account” to synchronize active admin user account with staging site #2183
  • New: Support SSL connection to external databases #2264
  • New: Allow WP-CLI to work on the staging site #2280
  • Enh: Refresh UI and add new animated loader icon to show backup progress #2292 #2349
  • Enh: Refresh UI and format system information page #2333
  • Enh: Refresh UI an add button to open staging site after updating staging site #2358
  • Enh: Refresh UI. Show more clear cron message and take into account that WP_CRON could be disabled if external backup cron is used #2378
  • Enh: Improve backup email error report and show more clear messages when a backup fail #2383
  • Enh: Display a message when the backup or restore process stops due to lack of server memory #2210
  • Enh: Combine wp staging logs and system info logs #2224
  • Enh: Show admin notice when optimizer mu-plugin is disabled to improve reliability of backup creation #2301
  • Enh: Run backup validation checks again after deleting a backup #2286
  • Enh: Toggle triangle icon on multi part backup click #2308
  • Enh: Make more clear where to enter the license key #2404
  • Enh: Allow uploads directory outside ABSPATH by using the filter `wpstg.backup.directory` #2359
  • Fix: Selecting a child folder automatically selects the parent folder. #2317
  • Fix: Toggle correctly the side bar navigation depending if staging or backup tab is active #2261
  • Fix: Excluding sub-directories on backup did not work with using the filter ‘wpstg.backup.exclude.directories’ #2291
  • Fix: Database permission warning did not disappear due to escaped database name #2234
  • Fix: Remove sanitize_url() deprecated notice #2306
  • Fix: Could not download system info #2323
  • Fix: Catch runtime exception when checking for valid backups during invalid file index notice #2312
  • Fix: Use correct html element id to fix js console error #2344
  • Fix: Last backup duration was always 0 min, 0 sec. It is now fixed #2383
  • Fix: Retry adding the backup file index up to 3 times if adding the backup file index fails #2383
  • Fix: Login redirect loop on wp-admin #2385
  • Fix: Add custom exception handler #2346
  • Dev: DRY webdriver tests #2276
  • Dev: Decouple PRO feature from WPStaging\Backup namespace and move them into WPStaging\Pro\Backup namespace #2296 #2336 #2356
  • Dev: Fix issues running basic webdriver tests on Github CI #2319
  • Dev: Add timeout to Github actions #2324
  • Dev: Write wp staging debug logs into global debug.log #2346

4.7.2 Release March 31, 2023

  • New: Compatible up to WordPress 6.2
  • Enh: Improves the look of the update notice #2294
  • Fix: Remove double www prefix if network is cloned to a www prefixed hostname but subsite already has www prefix #2284
  • Dev: Add more unit tests to increase reliability of the backup plugin #2273
  • Dev: Refactor backup terms Export to Backup and Import to Restore for consistency #2265
  • Dev: Move src/Pro/Backup to src/Backup as a first step to allow basic Backup feature to be added in Free version of WP Staging #2287 #2297

4.7.1 Release March 24, 2023

  • New: Add filter wpstg.restore.tmp_database_prefix to use custom temporary database prefix used during backup restore. Using this filter is useful in cases when (1) there are already tables with default WP Staging temp prefix (wpstgtmp_), or (2) restore fails because of 64 characters table name length limit for database identifiers #2217
  • New: Add filter wpstg.backup.directory to save backups in a custom location #2247
  • Enh: Improve message if there is not enough free disk space while creating a backup #2193
  • Enh: Add better logging for backup creation #2257
  • Enh: Improve the error message on the front-end when the backup directory is not available #2130
  • Enh: Show in knowledgebase block only articles of plugins that are actually installed on users website #2176
  • Enh: Show specific error message on backup listing page if backup is corrupted
  • Enh: Refactoring of admin notice for better performance #1573
  • Fix: Improper use of the Translation function #2259 #2260
  • Fix: Prevent fatal errors on rare edge cases where a file lock can not be released #2254
  • Fix: Clear wpstg_* scheduled hooks on plugin deactivation #2256
  • Fix: Images URLs are now correctly formed when a backup is restored from http to https and vice versa #2111
  • Fix: Allow + character in PuTTY SFTP key format, fixing the issue where PuTTY generated keys are not working #2155
  • Fix: Improper use of the translation function #2260
  • Fix: Sometimes a warning can appear indicating the backup file would be broken and contains a broken backup file index although the backup file is 100% intact #2269

4.7.0 Release March 13, 2023

  • New: Major change of the User Interface #2197 #2208
  • New: Add an option to send an email error report. You can enable this option in the settings and use a separate email to receive error reports #2205
  • Enh: Show a notice if site contains backup(s) with invalid files-index #2205
  • Enh: Add a retry mechanism to backup restore if a backup restore fails due to 404, 429 or 503 errors #2094
  • Enh: Clean up log files and don’t show necessary information #2124
  • Enh: Show notice how to enable permalinks depending on whether the server is Apache or another. #2143
  • Enh: Explain what to enter in the ‘version’ field of Generic S3 provider #2172
  • Enh: Show notice how to fix cron issue when using Litespeed server #2170 #2226
  • Enh: Better notification message when there are no files to backup #2175
  • Enh: Take sub folder into account when testing location for Google Drive Storage #2197
  • Enh: Include the current date and time in the database filename when the backup is a “Multipart Backup” #2126
  • Fix: Staging site database tables can not be pushed if staging site settings contain different table prefixes #2151
  • Fix: Support adding “+” sign in the name of the backup folder by FTP, the name of backup and in the name of clone #2160
  • Fix: Check if WP_ENVIRONMENT_TYPE is already defined before adding it to wp-config.php. (Solve conflict with local flywheel). #2165
  • Fix: Oldest multipart backups were not deleted during remote upload #2129
  • Fix: Prevent fatal error on push when there is no theme installed on production site #2185
  • Fix: Continue database restore by using shorter name for identifiers name exceeding maximum allowed characters #2114
  • Fix: Add a check to prevent warning undefined variable: jobId #2196
  • Fix: Better error handling if folder or file is not writeable #2190
  • Fix: Handle errors for PHP 8.x during Database Restore Task when max_packet_size is bigger than the actual sql result #2125
  • Fix: Convert utf8mb4 to utf8 when restoring database in MySQL < 5.7 to prevent MySQL Error 1071 because MySQL < 5.7 has max key length of 767 bytes. By converting utfmb4 to utf8 it reduces the size by 1/4 and allows restoring a backup. #2203
  • Fix: Restore of backup blocked due to incorrect permission check #2228
  • Fix: WP Staging log files could not be deleted #2222
  • Fix: Prevents a rare edge case where scheduled backups are continuous started over by implementing a better clean up routing #2231
  • Dev: Revert all usage of isWritable and isExecutable #2232
  • Dev: Broken test _04PushCest after implementing #2199 #2216 #2238

4.6.1 Release February 9, 2023

  • Enh: Database recovery enhancement to increase the execution time for executing an ajax triggered SQL query when query execution fails for a certain number of retries on weak servers #2117
  • Fix: Prevent fatal error on setting page due to using double semicolon(‘::’) to call static method from variable. Affects old php versions only. #2166

4.6.0 Release January 31, 2023

  • New: Button to edit backup schedules #2042 #2135
  • New: Show Google Drive backup account information on the plugin’s Google Drive backup settings page #2091
  • New: Add a cancel button to stop the pushing process #2101
  • Enh: Hide license key for privacy reasons, for instance when plugin is used by agencies on client websites #2118
  • Enh: Add filter `wpstg_login_form_logo` to allow custom change of the logo image on login page to staging site #2076
  • Enh: Clarification that the maximum retention period for backup in the “Create backup” modal only applies to locally hosted backup files #2085
  • Enh: If issue is reported via using the REPORT ISSUE button, send the license key with the submitted message #2087
  • Enh: Change some words to be more consistent #2099
  • Enh: Add link to docs article into error message if license key can not be activated #2100
  • Enh: Cleanup and remove backend/views/notices/poll.php and all related code #2107
  • Fix: Old automated local backups were not deleted and thus no new automated backups were created #2141
  • Fix: Improve detection if WordPress is installed in subdirectory. If home URL and site URL are different the cloned staging site URLs are sometimes incorrect. #2068
  • Fix: Ensure that functions in wp-staging-optimizer.php are declared only one time #2079
  • Fix: Remove some php’s deprecation warnings for php 8.x #2078
  • Fix: Remove error in search & replace of serialized data due to strict types during staging PUSH on PHP 8.1 and higher version. #2065
  • Fix: Remove warning “Undefined index: networkClone in single-overview.php line: 54” #2097
  • Dev: Write the version of the plugin into the header of wpstg.js when creating the dist package with make dev_dist #2095
  • Dev: Downgrade phpcs library to fix xss tests #2105
  • Dev: Show upload_path in system info #2024 #2147
  • Dev: Write the version of the plugin into the header of wpstg.js when creating the dist package with make dev_dist #2095

4.5.0 Release January 05, 2023

  • New: Optional feature to split backup files by type (plugins, media, themes) and maximum file size. Use filter `wpstg.backup.isMultipartBackup` to activate this option. Use `wpstg.backup.maxMultipartBackupSize` filter to adjust maximum file size for split backup, default is 2GB #1804
  • New: Add filter `wpstg.remoteStorages.chunkSize` (in bytes) to change chunk size of backups upload to remote storages #2047
  • New: Add filter `wpstg.remoteStorages.delayBetweenRequests` (in milliseconds) to add delay between requests to upload chunks to remote storages #1997
  • New: Add filter `wpstg.backup.tables.non-prefixed` to allow backup and restore of non WordPress prefixed tables #2018
  • New: Add option to download backup log files via ACTIONS > Log File #2025
  • New: Send mail report if unable to upload backup to remote storage(s) during automated backup #2025
  • Enh: Dont show recommendation message on using the same MySQL/MariaDB version while restoring if already the same MySQL/MariaDB version #1997
  • Enh: Preserve remote storages options during clone update. #2004
  • Fix: Store taskQueue in jobDataDto instead of a separate file #1997
  • Fix: Added upload_path in system info #2024
  • Fix: BINARY and NULL were not correctly search replaced if restoring the backup on the same site #2043
  • Fix: Correct database server type and MySQL/MariaDB version in System Info Tab #2043
  • Fix: Exclude filters in the UI for the staging site now allow adding dot `.` for extension, file and folder exclusion rules #2053
  • Fix: Issue during cleaning of other files in wp-content directory when actual uploads directory is not direct child of wp-content directory #2041
  • Fix: UPLOAD path was not correctly search replaced if source and destination site had a different relative upload path #2041
  • Fix: Importing a multisite backup with domains as network sites created wrong URLs for network sites if backup is restored into a multisite where network sites are subdirectories #2038
  • Fix: Allow database creation during push if multisite and mainsite #2032
  • Fix: Preserve scheduled backup plans during push #2032
  • Fix: Stop uploading backup to remote storage(s) after failure on certain amount of retries #2025
  • Fix: Dont copy google drive option during new or reset clone. This will make sure both sites will have different Refresh token. So revoking refresh token on one site doesn’t break uploading process for the other #2004
  • Fix: Fix php warning when null is passed as argument to trim function #2059
  • Fix: Improve admin notice when JETPACK_STAGING_MODE is active on staging site #2014
  • Dev: Bump minimatch from 3.0.4 to 3.0.8 in /src/assets #2007
  • Dev: Make extra_hosts section in docker DRY #2070
  • Dev: Split webdriver tests to speed up running and allow parallel execution of them #2057
  • Dev: Improve login page authentication message #2058 #2072

4.4.0 Release November 11, 2022

  • New: Compatible up to WordPress 6.1.1
  • New: Add support for uploading backups to DigitalOcean Spaces, Wasabi and other S3 compatible storages #1966
  • Enh: Allow backup upload to Amazon S3 when bucket has Lock Object and retention enabled #1973
  • Enh: Show warning if test connection to backup storage provider fails during save settings #1965
  • Enh: Show warning if there are more than 4 overdue backup cron jobs #1986
  • Enh: Show message if unable to pre-scan directories before cloning #1993
  • Fix: Under rare circumstances a fatal error is thrown during backup if scheduled time is NULL
  • Fix: `SSL` and `Passive` checkboxes were not considered during FTP backup storage test connection #1965
  • Fix: Fatal error when set_time_limit() has been disabled by the hosting provider #1977
  • Fix: Preserve backup cloud storage provider settings when pushing and improve Google Drive backup authentication #1999
  • Dev: Deprecated heredoc syntax for variables. Fix unit tests for php 8.2RC #1975

4.3.2 Release November 3, 2022

  • New: Compatible up to WordPress 6.1
  • Fix: Could not delete oldest backup from (S)FTP cloud storage provider if FTP location was set in FTP settings #1953

4.3.1 Release October 28, 2022

  • New: Option to disable local storage space and upload backup(s) only to remote storage spaces #1935
  • Enh: Huge improve of backup restoring performance by factor 2-3. #1951
  • Enh: Huge improve of backup creating performance on slow database servers. #1951
  • Enh: Add extra search & replace rule for elementor generated data #1902
  • Enh: Add dropdown to select bucket region for S3 backups instead of typing it in manually. Improve Amazon S3 settings page #1943
  • Enh: Skip search & replace if restoring a backup on the same site #1949
  • Enh: Add extra search & replace rule for elementor generated data #1949
  • Fix: Prevent a rare situation where the database is copied slowly with only one row per request #1951
  • Fix: Table selection ignored when creating a new staging site #1946
  • Fix: Could not properly restore network sites when a multisite backup was restored on a new WordPress that had a different table prefix than the source website #1948
  • Dev: Update DI52 version to 3.0 for performance gain #1934

4.3.0 Release October 17, 2022

  • New: Compatible up to WordPress 6.0.3
  • New: Show loader icon while saving settings or testing backup remote storages connections #1925
  • New: Show settings last saved time for backup remote storages SFTP, Amazon S3 and Google Drive #1925
  • New: Show last update and install date for WP STAGING|PRO plugin in System Info #1928
  • New: Show selected themes and plugins for UPDATE and RESET clone jobs #1926
  • New: Fix issues when restoring multisites backup if network subsites have different domains. It now support restore or conversion of domain based subsite to subdirectory based subsite #1872
  • Enh: Add search replace filter for database backup restore #1872
  • Enh: Allow access of staging site by using user email addresses beside usernames #1928
  • Fix: Adjusted multiple SplFileObject methods (due to unconsistent behaviour of these methods across multiple PHP versions) to support PHP 8.0 > 8.0.19, PHP 8.1 > 8.1.6 and upcoming PHP 8.2 #1903
  • Fix: Deleting the oldest remote backup from SFTP, Amazon S3 and Google Drive fails sometimes #1890
  • Fix: No update notification visible in wp staging user interface when there is a new pro version available #1894
  • Fix: Clean up code #1871
  • Fix: Unable to create backup if there are files in WP STAGING cache folder that can not be deleted like .nfs* files. #1859
  • Fix: Analytics reporting does not contain the list of installed plugins #1896
  • Fix: If an Amazon S3 api key contained + character, it turned into space character when saving in database #1912
  • Fix: Always store the names of installed plugins, mu-plugins and themes in backup metadata #1906
  • Fix: When restoring database with large amount of tables on PHP > 8.0.1 some tables doesn’t get created due unconsistent behaviour of FileObject library across PHP versions. #1872
  • Fix: Undefined var message in the log files if SSL connection could not be established due to outdated TLS on client server #1913
  • Fix: While creating a single staging site out of a network site, the folders (uploads/sites/ID) from other network sites weren’t excluded and contained in the staging site #1922
  • Fix: Selecting parent folder does not automatically select its subfolders for UPDATE and RESET clone jobs. #1926
  • Fix: Amazon S3 only supports a maximum of 10,000 chunks for uploading a single backup file. With previous 5MB chunk size, backup uploads to S3 failed if they are bigger than 50 GB. Now backup chunk size is adjusted according to the size of the backup file by making sure total chunks are less than 10,000 #1924
  • Tweak: Add option to not ask for license key activation on local development sites #1913
  • Tweak: Add better log messages for non working cron jobs #1907
  • Dev: Add testing suite to run unit tests against multiple PHP versions #1903
  • Dev: Add sass/scss support for compiling css #1925
  • Dev: Add Xdebug support for PHP 8.1, use custom php.ini in PHP 8.0 and PHP 8.1 #1928

4.2.14 Release September 17, 2022

  • Fix: Error when pushing a staging site and all folders are unselected #1883

4.2.13 Release September 15, 2022

  • Fix: Prevent internal error when clicking on Test Connection link on SFTP remote storage backup settings page. #1869
  • Fix: Properly catch runtime Exception during Backup Create and Backup Restore #1833
  • Fix: Connection to external database is broken if the password has special characters #1862
  • Fix: Can not login to staging site if special characters are used in password due to improper sanitization #1877
  • Tweak: Improve visual design of the upgrade screen
  • Tweak: Better error logging if backup could not be uploaded to sftp and if path does not exist on SFTP remote server. #1869
  • Dev: XDebug support for docker PHP image v.8.x #1867

4.2.12 Release September 07, 2022

  • New: Compatible up to WordPres 6.0.2
  • Security: Further improve sanitization and escaping of variables to prevent potential XSS attacks with high privileges #1836
  • Enh: Show better response from remote when license can not be activated #1818
  • Fix: Fatal error Uncaught TypeError on google drive backup upload settings page under rare circumstances when site is translated #1849
  • Fix: Fatal error on Windows OS when pushing a staging site and activating the backup option. It deletes the WP Staging content directory including its cache files file during files copying process, resulting in a failed push #1851

4.2.11 Release August 16, 2022

  • Fix: Does not sanitise and escape some of its backup settings, which could allow high privilege users such as admin to perform Stored Cross-Site Scripting attacks (XSS) even when the unfiltered_html capability is disallowed (for example in multisite setup) #1825

4.2.10 Release July 31, 2022

  • Fix: Important update! Deselecting all tables does not lead to exclusion of tables as expected, but leads to selection of all tables. Thus all tables are copied and possibly overwritten instead of deselected. Applies to new cloning, UPDATE and RESET of a staging page. That can lead to data loss in the staging site. An update is strongly recommended! The problem appeared for the first time in version 4.2.8. #1814
  • Fix: Can not upload backup file to google drive if the google api returns incorrect value for available storage size (negative value). This sometimes happens for Google workspace accounts and does not affect all users. #1799
  • Fix: Plugin wps-hide-login could not be excluded during cloning process, preventing users from log in to the staging site #1812

4.2.9 Release July 28 2022

  • New: Support WordPress 6.0.1
  • Enh: Some shared hosting servers like DreamHost doesn’t allow sending large data through URL which resulted in interval server error 500 when fetching the backup list. We changed the way of sending data now through request body which allow listing backups on such shared hosting servers #1788
  • Enh: Improve workflow to support tables with long name exceeding the 64 characters MySQL limit when a tmp prefix during restore is added. Those tables are now temporarily renamed to temporary short names during the restore process and after successful restore renamed back to their original names #1784
  • Fix: Restoring a backup, site language is not properly imported, resulting in switching the imported site back to site default language. Reason: Language files are imported before importing other files during backup restore. This led to cleaning the restored language files while cleaning other files. Now language directory is skipped during the cleaning of existing “other” files #1794
  • Fix: Check/Uncheck of the plugins and themes checkbox in the PUSH UI didn’t affect the children checkboxes. This issue is fixed and children checkboxes are properly toggled #1797
  • Fix: If all tables were excluded during PUSH, it was treated as if all tables were selected. Now tables selection is properly handled during the PUSH #1797

4.2.8 Release July 14, 2022

  • Support up to WordPress 6.0.1
  • Fix: On some servers, autoloader tries to load Composer\InstalledVersions although this doesn’t exist. We fix this by only loading classes that exist #1801

4.2.7 Release July 5, 2022

  • New: Add sFTP support to upload backup files automatically via (s)FTP to a remote server or NAS system #1677
  • Enh: Cloning/Push stops if folder name contains backslash character (\) on Linux OS #1744
  • Enh: Don’t copy or update wp-config.php if the staging site is updated by using the UPDATE button #1747
  • Enh: Restoring a backup from a staging site that uses the meta tag noindex, causes the imported site to also not be indexed. In the worst case, this can result in a production site not being indexable after restoring a backup. This update ensures that the index meta value of the imported site is preserved when a backup is restored. #1777
  • Enh: If Jetpack plugin is active, use the special Jetpack Staging Mode by adding the constant JETPACK_STAGING_MODE to wp-config.php of the staging site #1780
  • Fix: Fatal error if php curl() module is missing and backup is uploaded to Google Drive or Amazon S3 #1769
  • Fix: Fatal error on cloning due to strict standard issue in DbRowsGeneratorTrait when the user has E_STRICT or E_DEPRECATED constants active in PHP #1772
  • Fix: Fatal error on plugin activation if there is no write permission on the backup files. Happens only on updating from a very old version to latest one and the backup metadata update routine is fired #1776
  • Dev: Add automated test for scheduled backup plans #1764

4.2.6 Release June 10, 2022

  • Fix: Certain default plugins like wps-hide are not excluded anymore during cloning #1742
  • Fix: Scheduled backup not always executed #1754
  • Fix: Backup folder is deleted during backup restore on Windows OS #1737
  • Fix: On backup restore retry deleting an item again in next request instead of re adding it at the end of queue, if item isn’t completely deleted in current request #1758
  • Enh: Refactor normalizePath() #1751
  • Enh: Optimize table selection to reduce POST characters. Send either selected tables or excluded tables whichever is smaller along to reduce the POST size for cloning and pushing #1727
  • Enh: Allow automatic update of WP STAGING | PRO on the staging site. It can still be disabled using the filter wpstg.notices.disable.plugin-update-notice #1749
  • Enh: Add filter wpstg.backup.restore.extended-search-replace. The extended search replace allow properly replacing to destination URL for some plugins like rev-sliders #1741

4.2.5 Release June 1, 2022

  • New: Support up to WordPress 6.0
  • Fix: Don’t load mbstring polyfill file at all if iconv extension isn’t loaded #1734
  • Enh: Increasing Backup Filescanner Performance. Lower backup directory and file scanner request time #1714
  • Enh: Rename cancel button of backup schedules modal make it more responsive #1714

4.2.4 Release May 20, 2022

  • Fix: If there is a damaged backup in backup folder, automated backup does not work any longer #1707
  • Fix: Support UNC paths like //servername/path Unix or \\servername\path DOS/Windows #1698
  • Fix: Remove prefixed vendor namespace from the Normalizer class in the idn-intl polyfill #1720
  • Fix: Handle SSL related errors and catch other exceptions while making remote request to refresh Google token #1718
  • Fix: Backup does not restore theme if theme does not have a style.css #1719
  • Fix: Missing exception in Backup Extractor.php #1724
  • Enh: List damaged backup files in the UI and mark them #1710
  • Enh: Remove message “backup metadata not found” in debug log #1710
  • Enh: Clean up debug messages #1722
  • Enh: Add missing escaping of POST output #1705

4.2.3 Release May 12, 2022

  • New: Add Amazon S3 as backup cloud storage option for backup upload #1665
  • Fix: Fatal error due to missing BackupScheduler class in Free version #1688
  • Fix: Can not recursive scan file system if there is a symlink in root directory linking to the root directory itself. #1688
  • Fix: Can not download backup files. Incorrect backup download link if wp-content folder is symlinked to another folder outside the wp root folder #1697
  • Fix: Error on downloading backup in IIS due to section in parent web.config that overwrites the WP STAGING generated web.config in backup folder #1699
  • Fix: PHP Fatal error while cloning if php iconv extension is not active. Continue cloning even if punycode related code doesn’t work due to missing extensions #1702
  • Enh: Remove duplicated mbstring class #1702

4.2.2 Release May 03, 2022

  • New: Add multiple filters to keep existing media files, plugins, themes and mu-plugins after backup restore #1617
  • New: Clean existing files during backup restore which are not in backup #1617
  • Fix: Cloning does not work if php mb module is not installed #1669
  • Fix: Catch fatal error happening on backup upgrade routine #1663
  • Fix: Only process one backup queue action at a time. This make sure another action doesn’t conflict with the backup action in process. Also fix the wpstg_queue backup processing table growing problem #1652
  • Enh: Save log file name instead of complete task response in wp_wpstg_queue table. This reduces the size of backup queue table #1623
  • Enh: Stop the backup job on critical errors during scheduled backup #1623
  • Dev: Test for cleaning up files before backup restore fails on second run #1681

4.2.1 Release April 11, 2022

  • New: Support up to WordPress 5.9.3
  • New: Added upgrade routine for backup created with version 4.1.9 and 4.2.0 to fix backup metadata info #1647
  • Fix: Backup creation is blocked by mod_security if access tokens contain 0x string #1651
  • Fix: Unable to upload backup created with version 4.1.9 and 4.2.0 using WP Staging Backup Uploader #1647
  • Fix: Unable to import multisite backup when restoring backup into domain other than it was created on #1644
  • Fix: If there is an mysql error on copying a single row, it can lead to a interrupt of the whole clone job due to a browser memory exhaust error because whole sql query is written into html log element . #1654

4.2.0 Release March 31, 2022

  • Fix: Fatal error if another plugin uses the same google library as WP STAGING uses for the backup storage provider #1641

4.1.9 Release March 30th 2022

  • New: Support up to WordPress 5.9.2
  • New: Feature to upload backups to Google Drive #1453
  • New: Add filter wpstg.frontend.showLoginForm to force disable login form for the staging / backup site access #1577
  • New: Option to schedule a backup without creating one #1588
  • Enh: Improve backup schedules error reporting by showing cron related notice on backups page and sending schedules error report mails #1588
  • Enh: Improve subdirectory WordPress install detection by adding support for idn(internationalized domain names) #1564
  • Enh: Change backup lock process mechanism from using database to file based lock #1561
  • Enh: Make files & folders exclude filters work on WordPress root directory #1606
  • Enh: Remove old database only backup before PUSH process #1608
  • Enh: Exclude .htaccess from root directory only during cloning process #1616
  • Enh: Don’t backup table wp_wpstg_queue table #1624
  • Update: Bump minimist from 1.2.5 to 1.2.6 in /tests/js #1627
  • Update: Bump postcss from 8.2.10 to 8.2.13 in /src/assets #1547
  • Update: Bump mustache/mustache from 2.13.0 to 2.14.1 #1543
  • Update: Bump nanoid from 3.1.22 to 3.3.1 in /src/assets #1626
  • Fix: Correctly set multisite subsites urls with www prefix when cloning and restoring a backup #1567
  • Fix: Backup error “OutOfRangeException” was never caught when insert query exceeds max allowed packet size #1570
  • Fix: Add backup logic to check extended query string size against max allowed packet size which otherwise leads to a fatal error #1570
  • Fix: Handle critical error if WP STAGINGS settings get corrupted. Give option to restore default settings #1602
  • Fix: Recreate cron jobs of existing backup plans when adding a new backup schedules #1588
  • Fix: Enqueue a failed task/item again and set the queue’s offset to the end of file #1609
  • Fix: Stop cloning if destination directory/clone name already exists #1607
  • Fix: Continue cloning process even if copying a table failed #1578
  • Fix: Don’t remove freemius options if entire multisite is cloned. Prevents a fatal error. #1629

4.1.8 Release March 1st 2022

  • New: Support up to WordPress 5.9.1
  • New: Add filter wpstg.frontend.showLoginForm to allow third party plugin disabling login form for the staging site #1577
  • New: Add labels to distinguish between network and single site clones on multisite
  • Fix: Handle issue when showing staging sites in System Info #1560
  • Fix: Fix Rows Generator for zero or negative values for Primary Key Index #1584
  • Fix: Set option “Keep permalinks” on the staging site when updating a staging site if “keep permalinks” is active on the production site initially #1562
  • Fix: Updating an existing multisite clone converted the clone to a single site #1565 #1589

4.1.7 Release February 14th 2022

  • New: Create backups and restore of multisites #1458
  • Fix: Force AnalyticsSender to convert wpstg_settings to array before usage #1559
  • Fix: Backup Search & Replace does not work with new primary key conditional query #1556
  • Fix: Fix labels on backup sites #1551
  • Fix: Backup restore can not unserialize escaped serialized strings #1554

4.1.6 Release January 26th 2022

  • New: Support for WordPress 5.9
  • New: Add filter to change the cache folder for creating & restoring backups #1528
  • New: Huge performance improvement for search & replace in cloning / pushing / backup process #1522
  • Fix: Call to undefined function human_readable_duration() on backup creation if WP is older than 5.1 #1527 #1525 #1535
  • Dev: Add unit tests for Times class
  • Dev: Update db_version in SQL dumps to match WordPress 5.9 db version #1539
  • Dev: Add command to get db_version from database

4.1.5 Release January 12th 2022

  • New: Add support for WordPress 5.8.3
  • New: Add filter for excluding files during cloning / backup #1494
  • New: Add filter for overwriting max execution for database backup restore #1512
  • New: Add filter to allow overwriting of the maximum allowed request time to make sure backup restore works for huge files. (19.000.000M database rows) #1510
  • Fix: If cloning a multisite subsite into external database, it does not clone / backup wp_users and wp_usermeta #1515
  • Fix: Skip tmp single file plugin during backup PUSH copy process #1491
  • Fix: Preserve table selection during PUSH and UPDATE even when all backup tables unselected #1488
  • Fix: Make sure maximum memory consumption during cloning or backup is never higher than 256MB #1502
  • Fix: Use custom implementation of wp_timezone() for backward compatibility to WordPress older than 5.3 #1505
  • Fix: Override FileObject::fgets to make them behave exactly from SplFileObject of PHP < 8.0.1 #1506

4.1.4 Release December 29th 2021
* Hotfix: Fix CLONE PUSH BACKUP on Medium and High CPU Load on WP STAGING PRO 4.1.3. Improve Performance of database backup #1492

4.1.3 Release December 27th 2021
* New: If cpu load setting is low make use of the file copy limit for pushing process to increase copy speed #1485
* Enh: Add warning notice if WP_CRON_DISABLED is set to true as BG Processing depends upon it #1467
* Fix: Make FileObject::seek behave exactly as SplFileObject::seek from PHP < 8.0 #1480
* Fix: Search Replace now works for Visual Composer / WP Bakery encoded pages #1442
* Fix: Adjust CSS of the “Backup in Progress” element #1466
* Fix: Clarify email sending tooltip description #1469
* Fix: Adjust CSS of the loader icon #1487
* Dev: Cancel pending or running github actions fast tests if there is a new push on the same PR #1486

4.1.2 Release December 14th 2021
* New: Create fully customizable scheduled backup plans that will constantly create backups of your site. Including backup rotation to manage disk space. #1219 #1461
* Fix: Add own implementation of get_current_network_id() for backward compatibility #1438
* Fix: Updating or resetting staging / backup site skips all WordPress core folders #1435
* Fix: Prevent 504 Gateway Timeout issue during Backup restore by force a low CPU LOAD (i.e. 10s) #1420
* Fix: Wrong directory path is displayed when update/reset a staging / backup site #1447
* Fix: Override SplFileObject::seek to make it consistent across all PHP version including PHP 8 #1444
* Tweak: Retain WP STAGING ( backup ) options during push #1417
* Tweak: Make PHP 5.6 minimum supported PHP version #1448
* Tweak: Set WordPress 4.4 as minimum required WordPress version #1449
* Dev: Fix Queue working in PHP 8 and Add PHP 8 unit tests in fast tests #1450

4.1.1 Release November 19th 2021
* Fix: Update notice is shown even when using latest version #1398
* Fix: Backup & cloning 100% compatible with PHP 8.0.12 #1281
* Fix: Skip search replace on backup & cloning query if it’s size exceed preg functions limit #1404
* Fix: Skip inserting backup & cloning query if it exceeds mysql max_allowed_package. Show warning to user #1405
* Fix: Make db option wpstg_staging_sites always return an array #1413
* Fix: Fix dependency injection for backup notices class. Solve conflict with TranslatePress #1416
* Tweak: Use php version number as tag for php docker container #1407
* Tweak: Improve symlink tooltip text #1411
* Tweak: Refactor WP STAGING Pro to WP STAGING | PRO in notices #1409
* Tweak: Remove 16 characters limitation for the backup & CLONE NAME and keep it for CLONE DIRECTORY #1412

4.1.0 Release November 1st 2021
* New: Show a summary of selected tables and plugins in the push selection
* Fix: WP Staging’s variable not declared on plugins page #1373
* Fix: Fix PUSH process when no table is selected #1387
* Fix: Enclose table name with backticks during quering in CLONE and PUSH jobs #1388

4.0.9 Release October 25th 2021
* New: Ask user to allow sending non-personalized usage information for improving the user experience
* Fix: Feedback modal not opened after disabling a plugin #1373
* Fix: Prevent cloning error by enclosing table name with backticks in CLONE and PUSH jobs #1388
* Tweak: Disable the notice about not messing with uploads or wp-content directories #1385

4.0.8 Release October 25th 2021
* New: Ask user to allow sending non-personalized usage information for improving the user experience
* New: Adding improved dedicated WP STAGING debug log.
* Fix: Feedback modal not opened after disabling a plugin #1373
* Fix: Prevent cloning error by enclosing table name with backticks in CLONE and PUSH jobs #1388
* Tweak: Disable the notice about not messing with uploads or wp-content directories #1385

4.0.8 Release October 19th 2021
* Fix: Push from staging site in the external database can fail if there are many tables to replace due to exceeding the maximum allowed number of external database connections #1379
* Enh: Added buttons to ease the process of selecting tables during the PUSH process. #1377

4.0.7 Release October 12th 2021
* Tweak: Make staging site upgrade routine run always #1358
* Fix: Fix issue about checking rest url #1354
* Fix: Fix exclude condition for tables during PUSH #1364

4.0.6 Release October 8th 2021
* New: You can create a staging environment for your entire multisite network #1263
* New: Better support for custom tables without a wp core table prefix. Allow cloning/backup of tables that do not begin with a WP table prefix to an external database #1304
* New: Add new logic for showing update notification for PRO version, compatible for staged rollout releases #1308
* New: Show warning notice about not changing wp-content or uploads dir path on staging site #1313
* Tweak: Lower memory consumption on backup creation #1301
* Tweak: Fix open staging site button and text #1321
* Tweak: Layout of database comparison modal #1332
* Tweak: Simplify last step of the push and make it faster and more robust #1351
* Fix: Duplicate primary key error that could occur on Push #1322
* Fix: Dont rename themes/plugins with tmp prefix during push if content cleaning option is enabled #1305
* Fix: No search & replace of wp option db_version if table prefix is db_, during CLONE/PUSH #1307
* Fix: Avoid upgrade error if wp option wpstg_staging_sites is empty or not an array not an array #1331
* Fix: Show an error if table can not be copied for any reason on cloning / backup process #1302
* Fix: Vertical center align finish label after push #1311
* Fix: Use WordPress local timezone when logging for clone and backups #1323
* Fix: Better support for custom plugin directories on the staging site #1314
* Fix: Not all cloning/backup settings are cleaned during uninstall #1325
* Fix: Staging/backup site does not have orange admin bar after cloning #1329
* Fix: Warning if array key offset does not exist on search & replace #1334
* Fix: Disable WordFence plugin on the staging site to prevent by renaming .user.ini to .user.ini.bak #1338
* Fix: Prevent empty database prefix in staging site options if site is cloned to external database #1340
* Fix: List of staging sites contains duplicate entries if staging sites were initially created with wp staging free 2.8.6, then upgraded to pro 4.0.3 and pro 4.0.5 #1349
* Fix: Show error and stop cloning / backup process if unable to create staging / backup site destination folder #1348

4.0.5 Release September 18th 2021
* Fix: New pro version does not recognize staging sites created with older free version #1293

4.0.4 Release September 17th 2021
* Enh: Refactor the wp_login action hook to work with different parameter count than the one in WordPress Core #1223
* Enh: Sort new staging sites in descending order by creation time #1226
* Enh: Warn if creating a backup in PHP 32 bit version #1231
* Enh: Update the backup upload success message #1221
* Enh: Show a notice if there is a new WP STAGING free version #1250
* Enh: Rename db option wpstg_existing_clones_beta to wpstg_staging_sites #1211
* Enh: Update the warning message shown when the delete process of the staging site fails #1257
* Enh: Allow use of REST API on staging sites without login #1287
* Enh: Add new EDD software licensing updater #1294
* Fix: Fix a rare issue that could happen when creating a new staging site or restoring a backup when there is a row with primary key with value zero #1271
* Fix: Try to repair MyISAM table if it’s corrupt when creating a Backup #1222
* Fix: Fix an issue on backup creation that would cause a database export to loop when encountering a table with negative integers or zeros as a primary key value #1251
* Fix: Lock specific tables while exporting a backup, to prevent a rare duplicated row issue #1245
* Fix: If the memory exhausts during a database export using the Backup feature, lower the memory usage/speed of the export and try again automatically #1230
* Fix: Prevent failure of adding database to backup from causing a loop #1231
* Fix: Fix issue when old clones from version 1.1.6 or lower replaces the existing clones from later version when upgrading from FREE to PRO version #1233
* Fix: Fix inconsistent Unselect All Tables button’s action #1243
* Fix: Replace undefined date with proper formatted date during backups for some warning and critical messages #1244
* Fix: Split file scanning of wp-content into scanning of plugins, themes, uploads and other directories to reduce timeout issues #1247
* Fix: Rename .user.ini to .user.ini.bak after cloning to reduce fatal errors on staging site. Also show a notice. #1255
* Fix: Skip scanning the root directory if all other directories are unselected #1256
* Fix: Show correct insufficient space message instead of permission error if unable to copy due to insufficient space #1283
* Fix: Fix showing of error when unable to count tables rows and wrap table name when fetching rows during backup #1285
* Fix: Remove custom error handler that could cause errors due to notices being thrown #1292
* Fix: Fix an error that would occur when PHP lacked permission to get the size of a directory when pushing a staging site to production #1295
* Dev: Set the version of Selenium containers to 3.141.59-20210713 to avoid issues with broken latest version of selenium #1234

4.0.3 Release July 27th 2021
* New: Support WordPress 5.8
* New: Show notice if uploads dir is outside WP Root #1138
* Enh: Show warning during restore if Backup was created on a server with PHP ini “short_open_tags”, and restoring on a server with it disabled #1129
* Enh: Also show disabled permalink message in disabled items notice on the staging site and show a page builder (DIVI, Elementor etc) not working help link in wpstg page footer #1150
* Enh: Allow filtering the Backup directory using the `wpstg.backup.directory` filter #1167
* Enh: Decouple clone name and clone ID for better usage #1158
* Enh: Allow backups on the staging site #1172
* Enh: Show issue notice if backups is created on version >= 4.0.2 #1198
* Enh: Remove deprecated hooks call #1209
* Fix: Fix staging site when site has freemius script #1112
* Fix: Prefix ‘wpstg’ to sweetalerts Swal to avoid conflict with its other versions #1125
* Fix: Fix a bug in the backup export logic that would loop when encountering a file with non-empty contents that PHP would evaluate as false #1126
* Fix: Set default values for wpstg settings on plugin activate event if wpstg settings not already set #1135
* Fix: Fix the problem when unable to access the staging site because production site have different siteurl or home url and either one of them is having www. prefix #1136
* Fix: Restore a backup with VIEWs or TABLEs with special MySQL configurations such as DEFINER #1139
* Fix: Fix issue where tab triangle was inconsistent by using css based tab triangle #1148
* Fix: Fix issue where backup tmp folder cleaning process closes logs modal #1157
* Fix: Reduce time to query INFORMATION_SCHEMA on some shared hosts from ~10s to one millisecond #1154
* Fix: Fix a bug on backup creation that would not prefix the table name if a MySQL View is selecting data from another MySQL View #1155
* Fix: Fix a bug on backup restore that would fail when trying to create a MySQL View that selects data from another MySQL View that has not been created yet due to order of creation #1155
* Fix: Check available free disk space on large disks on 32-bit PHP #1179
* Fix: Fix a bug where a PHP memory_limit of -1 (Unlimited) would be interpreted as 64MB, now it’s interpreted as 512MB #1178
* Fix: Fix download of .wpstg files on Bitnami/AWS Lightsail servers #1181
* Fix: Remove usages of `abstract static` methods that would violate `strict` PHP checks #1185
* Fix: Cloning a site resets the settings to the default ones #1183
* Fix: Fix a bug on backup creation that would prevent user from logging in after restoring a backup on a site with a different WPDb prefix #1169
* Fix: Allow backup restore with a warning if file count is different than expected, improve backup file count logic #1189
* Fix: Fix Clone RESET and Clone DELETE when unable to delete file due to permission error #1196
* Fix: Fix an issue when canceling a push confirm redirects to empty page #1206
* Fix: Add missing back button and hide cancel button after clone UPDATE and clone RESET #1207
* Fix: Fix Error in JS console related to registering of main-menu in page where it was not available #1205
* Dev: Add wrapper methods for deprecated hooks functions to support WordPress < 4.6 #1209

4.0.2 Release July 06th 2021
* Enh: Replace css based hover with pure js hoverintent for tooltips #1106
* Enh: Cleanup logs older than 7 days automatically #1116
* Enh: Update the version to check in Outdated WP Staging Hooks notice #1118
* Fix: Fixed conflict with Rank Math Seo PRO when Rank Math Seo PRO is activated network wide in multisites #1111
* Fix: Make Scan::hasFreeDiskSpace() return other info even if disk_free_space is unavailable #1093
* Fix: Fix an issue where MySQL views were not being deleted correctly during the database cleanup step of the backup export #1098

= 4.0.1 =
* Enh: Delete Optimizer Plugin on WP Staging plugins deactivate instead of uninstall #1096
* Enh: Optimize compatibility to restore backup generated in newer versions of MySQL #1109
* Enh: More robust backup upload by allowing a small size difference before considering it invalid #1110
* Fix: Replace the deprecated of calling a non-static method in daily version check hooks #1092
* Fix: Fixed an issue where a column with reserved MySQL keywords would cause a malformed MySQL query during the backup export #1097
* Fix: Try catch all instance of directory iterators #1101
* Dev: Refactor the JS code of the Backup feature for better readability and maintainability #1102

4.0.0 – Release June 24th 2021
* New: You can now Backup, Download and Restore your entire website anytime you want! Easily migrate your website to another server by uploading the Backup and Restoring it on another server! #746
* Enh: Schedule the uploads backup to be deleted after one week if that option was selected during push #980
* Enh: Allow copying of only that symlink whose source is a directory #979
* Enh: Show notice only to user who can manage_options if wp_options table is missing primary key #1009
* Enh: Gracefully handle disk full during backup creation/restore #1041
* Fix: Handle error properly for Filesystem::delete() method #974
* Fix: Remove loading wpstg scripts as ESM to allow loading them as asynchronous #1007
* Fix: Properly handle exception while cleaning themes and plugins bak and tmp directories #1017
* Fix: Delete the clone even if in any case a corrupted delete job cache file existed for delete job #1033
* Fix: No cloning/pushing logs were written to file. Now fixed. #1040
* Fix: Wrap wp_doing_ajax in a adapter and use that adapter to call it to make it usable in WP < 4.7 #1047
* Fix: Fix typo and wrap up text in i18n for src/Backend/views/clone/ajax/start.php #1051
* Fix: Fix missing clone options warning during scanning process for old clones for UPDATE and RESET #1058
* Fix: Make isExcludedDirectories condition works for relative directories path too #1054
* Fix: Allow backup to be exported/restored from/to sites with custom WordPress directory structures #1032
* Fix: Set donation link to redirect to WP Staging pricing page #1080
* Dev: Add a shortcut to allow to use the DI container as a Service Locator easier under some circumstances #1039
* Dev: Add trait to allow for easier use of the `uopz` extension in tests #1053
* Dev: Replace const related tests logic with UOPZ for better readability and control #1079

3.2.6 – Release May 28th 2021
* Feat: Compatible up to WordPress 5.7.2
* Enh: Preserve directories/tables selection and excludes rules for RESET and UPDATE process #809
* Enh: If any wpstg process is running allow to stop that process within RESET modal #942
* Enh: Properly show error message if unable to scan a directory (especially for Windows IIS env) #960
* Fix: Fix multisite subsite capabilities on the staging site #852
* Fix: Properly resets the properties between Cloning tasks #896
* Fix: Avoid PHP warning when building version of missing asset file #929
* Fix: Clean leftover wpstg-tmp-* and wpstg-bak-* directories from plugins and themes directories while push #954
* Fix: Make RESET modal show error message within modal on failed response instead of browser logs #942
* Fix: Replace wpstgGetCloneSettings() in mail-settings.php with CloneOption::get() #956
* Fix: Little typo changed effect to affect #963
* Fix: Made node_modules dir to be only excluded from WP Staging’s Plugins #963
* Fix: Fix UPDATE and RESET for old wpstg clones which are without appended underscore db prefix #958
* Fix: Always use database table prefix in lowercase for Windows environment #967

3.2.5 – Release May 05th 2021
* Feat: Compatible up to WordPress 5.7.1 #855
* Feat: Check disk space according to selected directories #761
* Feat: Make the staging site admin bar background color customizable #758
* Feat: Add UI to exclude certain files or folders by rules #726
* Feat: Show success popup on UPDATE and RESET jobs’ completion #818
* Enh: Disallow hypen in table prefix #819
* Enh: Directory navigation in file selection to infinite deep level #768
* Fix: Fix copy of big external tables #795
* Fix: Exclude mainsite uploads dir content while cloning non-main sites in multisite #755
* Fix: Fix RESET process for destination dir outside WP Root #808
* Fix: Exclude blog_versions table from SearchReplace job as well #807
* Fix: Fix issue where sub directories can only be collapsed when parent directory is checked #835
* Fix: Push now works if the ANSI_QUOTES sql_mode is enabled, as it is by default on Digital Ocean #839
* Fix: Fix isStagingSiteCloneable index not found when saving settings on old staging site #846
* Fix: Fix: Showing warning alert during PUSH when user tries to navigate to other page or close the browser/tab #848
* Fix: Fix unable to connect external database when making sure staging site doesn’t use production site database and prefix #851
* Fix: Database backup’s DELETE now works when deleting backup with no table #857
* Fix: Fix cloning not working due to warnIfClosingDuringProcess not being called properly #871
* Dev: Integrated Rollup for bundling/minifying/concatenating assets #828
* Dev: Remove console.log() output #874

3.2.4 Skipped

3.2.3 Skipped

3.2.2 – Release March 22th 2021
* Feat: Compatible up to WP 5.7
* Feat: Check database connection in clone data edit #650
* Feat: Exclude .wp-staging-cloneable file from cloning and update #718
* Feat: Show notice if a user is using an outdated version of WP Staging Hooks plugin #716
* Feat: Add single disabled items notice with better message #717
* Feat: Add options to enable/disable staging sites cloning from UI #722
* Enh: Use included directories instead of excluded directories to increase cloning speed #671
* Enh: Stringify directories array var in $_POST to reduce $_POST size during cloning #671
* Enh: Replace relative paths exclude to absolute and wildcard paths exclude during cloning #671
* Enh: Detect snapshot tables using regex #694
* Enh: Enable disable save button in clone data edit during database connection #700
* Enh: Improve exclude filters for Push process #720
* Enh: Move Backend/public/img to assets/img #719
* Enh: Unify Single and Multisite Classes #713
* Enh: Keep other staging behavior when the staging site is cloneable #722
* Fix: Lost password link generation in staging sites #697
* Fix: Fix cloning on multisite for PHP 5 #725
* Fix: Skip symlink scanning during directory scan #736
* Dev: Internal refactoring of database backup to avoid long-lived branch #624
* Dev: Enforced changelog entries in CI #695
* Dev: Refactored webdriver tests to make them faster #656
* Dev: Refactor how the automated test workflows are generated. Add new webdriver test before release with default settings #712
* Enh: Refactor search and replace jobs to use memory and time-consumption aware trait #702
* Dev: Increased default file batch limits for faster development environment and CI #706
* Dev: Renamed all code and UI references of Snapshot to Backup #715
* Dev: Add helper to manage clone settings #717
* Dev: Internal code refactoring, renaming classes for better readability #721
* Dev: Add infrastructure support for wp-cli and background processing #728

3.2.0 – February, 10th 2020
* Feat: Compatible up to WP 5.6.1
* Feat: Option to clean folders uploads, plugins and themes before updating staging site
* Feat: Option to clean folders uploads, plugins and/or themes during push
* Feat: Option to symlink uploads folder incl. images from staging to production site. No need to copy images between staging and production site anymore
* Feat: Show creator user name of staging site
* Feat: Add option to toggle mail sending through settings on staging site
* Feat: Add filters for overriding mail sending
* Enh: Show notice if sending mails are disabled
* Enh: Show message and stop execution if php version is lower than 5.5
* Enh: Abort cloning process if table already exists in external database
* Fix: Can not update database credentials in staging sites wp-config.php under rare circumstances
* Fix: During the update process if options table was not selected it didn’t get skipped
* Fix: Error if WP is lower than 4.6
* Fix: Can not delete entire staging site on error
* Fix: Activating pro version does not properly disable free version= 3.1.9 skipped =
* New: Option to clean folders uploads, plugins and themes before updating staging site
* New: Option to clean folders uploads, plugins and/or themes during push
* New: Option to symlink uploads folder incl. images from staging to production site. No need to copy images between staging and production site anymore
* New: Show creator user name of staging site
* New: Show notice if sending mails are disabled
* New: Option to disable emails from being sent from staging site
* Fix: Show message and stop execution if php version is lower than 5.5
* Fix: Abort cloning process if table already exists in external database
* Fix: Can not update database credentials in staging sites wp-config.php under rare circumstances
* Fix: During the update process if options table was not selected it didn’t get skipped
* Fix: Error if WP is lower than 4.6
* Fix: Can not delete entire staging site on error

3.2.1 – Release February 23th 2021
* Feat: Compatible up to WP 5.6.2
* Feat: Option to clean folders uploads, plugins and themes before updating staging site
* Feat: Option to clean folders uploads, plugins and/or themes during push
* Feat: Option to symlink uploads folder incl. images from staging to production site. No need to copy images between staging and production site anymore
* Feat: Show creator user name of staging site
* Feat: Add option to toggle mail sending through settings on staging site
* Feat: Add filters for overriding mail sending
* Feat: Add option to reset clone
* Enh: Show notice if sending mails are disabled
* Enh: Show message and stop execution if php version is lower than 5.5
* Enh: Abort cloning process if table already exists in external database
* Enh: Improve design of clone and database backup overview item
* Enh: Move action of clone and database backups to dropdown
* Enh: Delete opcache for wp staging classes after installation
* Fix: Can not update database credentials in staging sites wp-config.php under rare circumstances
* Fix: During the update process if options table was not selected it didn’t get skipped
* Fix: Error if WP is lower than 4.6
* Fix: Can not delete entire staging site on error
* Fix: Activating pro version does not properly disable free version

3.2.0 – skipped

3.1.9 – skipped

3.1.8 – Release January, 15th 2020
* New: Compatible up to WordPress 5.6
* Fix: Can not clone properly network site if it is in a subfolder
* Fix: Uninstall function throws fatal error
* Fix: Do not write sensitive information into debug.log
* Fix: Update notification shown even if there is no more recent version
* Dev: Prefix composer vendor libraries
* Dev: Add more tests to improve QA

3.1.8 – Release December, 15th 2020
* New: Compatible up to WordPress 5.6
* Fix: Can not clone properly network site if it is in a subfolder
* Fix: Uninstall function throws a fatal error
* Fix: Do not write sensitive information into debug.log
* Fix: Update notification is shown even if there is no more recent version
* Dev: Prefix composer vendor libraries
* Dev: Add more tests to improve QA

= 3.1.7 =
* Fix: Update notification is shown even though there is no more recent release

= 3.1.6 =
* Fix: Database restore fails
* Fix: Do not show cache notice after push
* Fix: memory exhaust on tests
* New: Show confirmation alert on the closing website while site cloning or pushing is executed
* Enh: Change authentication to a combination of nonces and access tokens
* Enh: Improve tests performance
* Enh: Add tests for database export and restore

= 3.1.5 =
* HotFix: Activation hook is not fired after first time installation and wpstg optimizer and cron tasks are not set up
* New: Add special admin notice if plugin is not tested with latest WordPress version

= 3.1.4 =
* Fix: Missed updating supported WordPress version

= 3.1.3 =
* New: Compatible up to WordPress 5.5.3
* New: Allow deleting of orphaned staging site entries if staging site was deleted manually before
* Fix: Staging site does not work if database password contains dollar sign in password
* Fix: Prevent fatal error when the plugin is activated, but there is no permission to create folder wp-content/uploads/wp-staging or wp-content/uploads/wp-staging/logs.
* Fix: Notices if plugin is used on PHP 5.6
* Dev: Add new DI container implementation
* Dev: Add composer 2

= 3.1.2 =
* Fix: Fatal error on activation (Syntax error)

= 3.1.2rc =
* Feature: Disable sending emails on staging site
* Feature: Edit button to reconnect broken staging site
* Feature: Copy themes to tmp folder first before pushing to production site
* New: Compatible up to WordPress 5.5.1
* New: Rename Snapshots to Backup
* New: Add WP_ENVIRONMENT_TYPE constant for staging site
* New: Better and wider test coverage
* New: Implementing of automated CI tests
* New: Huge code base refactor for cleaner code
* New: Updated authentication mechanism for ajax requests
* New: Show welcome video message
* New: Show message asking for admin credentials on login form
* New: Move WP STAGING menu down below the menu Plugins
* New: Selected tables are highlighted with a blue background color
* Fix: Show access denied message if a non but existing user tries to access the staging site
* Fix: Remove wp_logout() in staging site login form to prevent multiple login log entries with plugin WP Activity Log
* Fix: Wrong german translations
* Fix: Cloning fails if there is no underscore in table prefix

3.1.0  – Release September, 03th 2020
* New: Tested up to WP 5.5.1
* Fix: Cloning fails if there is no table prefix underscore

3.0.9 – Release August, 28th 2020
* Fix: Login does not work with custom user role
* Fix: Can not login with custom user name

3.0.8 – Release August, 21th 2020
* Fix: Plugins are sometimes deleted on staging site after log in to admin dashboard
* Fix: Cloning multisite fails without any error message

3.0.6 – Release August, 15th 2020
* New: Support for WP 5.5
* New: Highlight table selection with blue background color to better differentiate if a table is selected or not

3.0.5 – Release July, 06th 2020
* New: Automatically recreate permalinks after pushing
* New: Don’t create wpstgbak_ tables any longer and use the snapshot function
* Fix: Exclude views from cloning and pushing
* Fix: Step switching logic does not work properly
* Fix: Don’t select network site tables when the main site is cloned
* Fix: Remove snapshot tables from the list of copyable tables
* Fix: Fix progress bar when certain steps are skipped
* Fix: Change german translation for REPORT ISSUE
* Fix: Create adapter for function sanitize_textarea_field to prevent fatal error on old WP version

Become a Pro

3.0.4 –  Release May, 14th 2020
* New: Support for WordPress 5.4.2
* New: Add nice looking modal after successful pushing
* New: Scroll to bottom if staging site is going to be deleted
* New: Ask for hosting provider in the contact form
* New: Ask for login credentials in the contact form
* New: Send debug.log after sending error report and user allows it
* New: Show tooltip for unfinished status
* New: Show license key in system info
* New: Improve license expiration notice
* New: Show warning if destination hostname does not contain a scheme
* New: Allow filtering of the staging site title
* New: Performance improvement. Disable creating back tables since as the new snapshot function is included
* Fix: Stop cloning and show an error message if the user tries to clone into the local database and is going to overwrite production tables
* Fix: Under certain circumstances, cloning is interrupted by a missing file exists check
* Fix: Make sure user can not add decimal points into search & replace settings
* Fix: Cluttered user interface. 1,2,3 steps elements are not shown correctly
* Fix: Allow special characters in the database password
* Fix: When a staging site is cloned remove orphaned listed staging sites
* Fix: Can not copy tables if the prefix is capitalized & has no underscore

3.0.3 – Release May, 01st 2020
* New: Support for WordPress 5.4.1
* Fix: Fatal error by using get_user_locale() in WordPress 4.7 and older
* Fix: Restoring a snapshot creates another snapshot with prefix wpstgmp_

3.0.2 – Release April, 08th 2020
* Fix: Preparing Data Step6 fails due to the latest change in WordPress 5.4. The previous fix did not solve this for external database cloning.

3.0.1 – Release April, 04th 2020
* Fix: Preparing Data Step6 fails due to latest change in WordPress 5.4
* Fix: Plugin can not be uninstalled on PHP 7.2 and later

3.0.0 – Release April 02th 2020
* New: Support for WordPress 5.4
* New: Snapshot function for backing up, exporting and restoring the databse
* New: Refactoring code to get more unit testable code
* New: User interface improvements
* Fix: Fatal error if user uses a custom date time format
* Fix: Fatal error if function curl_version() is not available

2.9.9 – Release January 22th 2020 
* Fix: If server is windows it will result in missing files after cloning and can lead to fatal errors of the staging site

2.9.8 – Release January 14th 2020
* Fix: Constant should be WPSTG_OPTIMIZER_MUVERSION in pro & free version

2.9.7.1
* Fix: Compatibility fix – wrong urls after using staging update function (affects free version only)

2.9.7 Release December 28th 2019
* New: Support for WordPress 5.3.2
* New: Add french language files
* New: Set 24 hours expiration date to process lock
* Fix: Add missing string language location
* Fix: Function fnmatch() not available in all systems
* Fix: Warning in staging site after initial cloning in db row rewrite_rules
* Fix: Wrong staging site is selected when delete function is executed and there are more then 10 staging sites
* Fix: Fatal error: Cannot redeclare wpstgpro_overwrite_nonce() and wpstg_overwrite_nonce() after activating pro version on top of this free one
* Fix: wpdb->prepare() warning after initial cloning
* Fix: Fatal error after push if plugin folder is wp-staging-1

= 2.9.6 =
* New: Supports WordPress 5.3
* New: Add WP Staging logo to login screen for easier getting where that login form is coming from
* New: REFACTORING of the file structure
* New: Link hostname URL in site listing
* Fix: Fatal error on search / replace function if there is an empty DateTime object in the database

= 2.9.5 Released November 5th 2019 =
* Fix: Images are broken after cloning #72
* Fix: Error message Warning: Attempt to modify property of non-object in wp-staging-pro/wp-staging-pro.php #71
* Fix: Wrong wp_user_level and wp_capabilties value after cloning multisite #69
* Fix: Timeout if huge tables are renamed #64
* Fix: Fatal error: Invalid serialization data for DateTime object #74 WPS-11

= 2.9.4 =
* New: Support for WordPress 5.2.4
* Tweak: More clear description for changing auth user roles on staging site
* Fix: Download System Info File puts file name into single strokes
* Fix: Cloned tables are empty if the prefix is capitalized for multisites

= 2.9.3 Released 1st October 2019 =
* Fix: External links are broken after cloning if ABSPATH is equal to /www/
* Fix: use an alternative method for file_put_contents as it is not supported on all systems due to file permission issues
* Fix: Redundant and duplicated update comments in wp-config.php in staging site
* Fix: Error if wpstg_execute already exists on updating staging site
* Fix: Wrong UPLOAD constant in wp-config.php of staging site if server is IIS and cloned to external database

= 2.9.2 =
* New: Add hook “wpstg_clone_action_staging” to execute code on staging site after cloning
* New: Compatible to WordPress 5.2.3
* Fix: Can not collapse uploads dir in file selection menu
* Fix: Admin can not login to multisite staging site. Change base_prefix in _usermeta table

= 2.9.1 =
* Fix: Better compatibility with Windows IIS server
* Fix: PHP Fatal error: Uncaught Error: Class ‘WPStaging\Backend\Pro\Licensing\stdClass’
* Fix: Do not copy web.config and .htaccess if website is cloned to a subdomain instead subfolder to prevent site-not-loading issues
* Fix: Do not stop cloning if folder exists and is empty
* Fix: If multisite is used make sure to copy over only the images folder beloning to the child network site e.g. wp-content/uploads/sites/2
* New: Add support for custom uploads folder if user customized UPLOADS constant or upload_path in DB
* New: Do not show update notifications for wp staging pro installed on the staging site
* New: Allow wildcards for excluding files
* Tweak: Better explanation that the pushing process must be started from the live site. Including link to production site!
* Tweak: Improve wordings for “saving permalink settings after pushing”
* Tweak: Improved support for custom uploads folder if user customized UPLOADS constant or upload_path in DB

= 2.9.0 Released July 24th, 2019 =
* New: Improve styling of the login form. Thanks to Andy Kennan (Screaming Frog)
* New: Add ‘password lost’ button to login form
* New: Improve styling of select all tables button
* New: Add new filter wpstg_cloning_target_dir
* New: Add new filter wpstg_cloning_target_hostname
* New: Add arguments for hook wpstg_cloning_complete
* New: Setup server environment variables per process and not globally (e.g. set_time_limit)
* Fix: Pushing a main multisite from an external database can result in preselected tables of child sites.
* Fix: Improve wordings
* Fix: Staging site could not be deleted even though the staging site folder is completely empty.
* Fix: Do not copy WP Staging Hooks plugin from staging to live to make sure to not overwrite its custom data
* Fix: Make sure WP Staging Hooks plugin keeps activated on the production site after pushing (If it exists and is active)
* Fix: PDO instances can not be serialized or unserialized
* Fix: New tables that do not already exist on the live site will not be transferred from staging site to production site
* Fix: Add UPLOAD constant to wp-config.php of staging site does not work under all circumstances for cloning multisites
* Fix: Can not update staging site DB table if there are constraints in it
* Fix: If custom destination dir is used it does not check if there are already files in the selected folder before cloning
* Fix: Improve deleting process
* Fix: Do not show error “Preparing Data Step3: Failed to update rewrite_rules in wpstg0_options”
* Fix: Change error “Table wpstgtmp_options does not exist” to warning

= 2.8.9 released July 08th, 2019 =
* Fix: Remove search & replace maximum value detection for cloning wp multisites

= 2.8.8 =
* Fix: Add filter wpstg_folder_permission to set custom folder permission like 0755, allows overwriting FS_CHMOD_DIR if it has been defined.
* Fix: Cloned multisite can not connect due to missing db credentials in wp-config.php
* New: Compatible up to WordPress 5.2.2

= 2.8.7 =
* Fix: Excluded folders under wp-content level are not taken into account on Microsoft IIS servers
* Fix: Error conditions in class Data do not compare type strict (== vs. ==) resulting in interruption of clone process
* Fix: Cloning a multisite to an external database results in broken images due to wrong upload path
* Fix: Disable foreign key check to prevent interuption of database duplication when foreign keys are used and db is cloned to external database
* Fix: Add filter wpstg_folder_permission to set a custom folder permission like 0755, allows to overwrite FS_CHMOD_DIR if it has been defined.
* New: Performance improvement for directory iterator using less server ressources
* New: Compatible up to WordPress 5.2.2

= 2.8.6 =
* Fix: Throw fatal error if selected target directory is the same as production website
* Fix: Can not copy database tables if mysql version on live and staging site is different and if one version is below mysql 5.6
* Fix: Make sure no whitespace characters are contained in beginning and end of the string target directory due to copy & paste issues
* Fix: Cloning a multisite to another database does not work as wp_users and wp_usermeta is not copied
* Tweak: Improve FAQ

= 2.8.5 =
* New: Update for WP 5.2.1
* New: Better warning notices before updating process is executed
* New: Better corporate identity and more friendly UI colors for staging sites listings and button
* New: Add tooltips for explaining navigation buttons
* Fix: Custom Database prefix is not stored and leads to empty table selection when trying to push
* Fix: Do not search & replace through “__PHP_Incomplete_Class_Name” definitions
* Fix: Cloning to external database does not go to the end under certain circumstances
* Fix: Prevent wordfence firewall rule interrupting the clone deletion method
* Fix: Copy web.config when site is cloned to a custom destination directory and subdomain
* Fix: Remove whitespace from target hostname
* Fix: Can not detect and push staging site created with older version of wp staging and which contains capitalized clone name
* Fix: Can not push staging site that has whitespaces in its name
* Fix: Strip whitespaces in cloning site internal names

Version 2.8.4 – Released 11th May 2019

* New: Compatible to WordPress 5.2
* New: Allow adding file .wp-staging to root of the website to determine if it’s a staging or production website
* New: Show unfinished or interrupted clones and allow deletion of them
* Fix: Convert staging site table prefix to lowercase
* Fix: Links in certain db rows are not changed with search & replace method if in the same db row is a mail address available.

= 2.8.3 =
* Fix: WordFence firewall rule ‘local file inclusion’ blocks wp staging initial starting cloning sequence
* Fix: Values of form Extra directories to copy are ignored
* Fix: Excluding tables or folders at the delete process are ignored
* Fix: Multisite cloning misses the tables _users and _usermeta. No login possible
* New: Add filter wpstg_push_excluded_files to exclude certain files from pushing

= 2.8.2 =
* Fix: Check if posix_getpwuid exists before using it in system info log
* Fix: Undefined offset
* Fix: Improve compatibility for the care case where wp upload folder is the same as wp-content
* Security: Remove storing of old db paassword
* New: Do not change the upload folder structure for using multisites
* New: Add hooks that can be used to trigger external actions after cloning and pushing, see https://github.com/rene-hermenau/wp-staging-hooks

= 2.8.1 =
* Fix: Lower the memory consumption when cloning scan process is started
* Fix: wp-content subfolders are excluded when cloning is started

= 2.8.0 =
* Tweak: Better database connection check
* Tweak: remove error message when siteurl and home url can not be replaced when it has been done already
* Fix: Lower the memory consumption when cloning scan process is started
* Fix: Disable the WP-Spamshield Plugin on staging site because it prevents login to staging site
* Fix: Does not copy .htaccess when site is cloned to external subdomain. Throwing warning notices.

= 2.7.9 =
* Fix: Update cron method throws fatal error

= 2.7.8 =
* New: Show update notifications in WP Staging User Interface
* New: Save folder and database table selection of the last push
* Fix: Cron job for checking plugin does not work properly

= 2.7.7 =
* New: Open system info log file directly via wp staging > tools
* New: Setting to preserve the permalink setting of the production site
* New: Tested for WordPress 5.1.1

* Fix: Search & Replace is not executed when staging site is located in separate database
* Fix: Prevent error message “can not find wpstgtmp_options” in data crunching step 10
* Fix: If multisite is installed in subdirectory, search & replace is not returning the correct siteurl and home
* Fix: Select All button for db tables not working in push menu
* Fix: If website is cloned to a custom directory let’s copy the .htaccess as it is assumed that the staging site is copied to a subdomain
* Fix: Create “Set Default” link to be able to take over the default target hostname and target directory in advanced settings
* Fix: Theme folder is excluded from pushing when its name is the same as the name of the staging site
* Clean Up: Move admin notices to new location /views/includes/notices

= 2.7.6 =
* New: Add Filter to exclude certain tables from search & replace operation
* New: Check if there is already one process running before executing the cloning process
* New: Change WPSTGPRO_PLUGIN_DIR to WPSTG_PLUGIN_DIR
* New: Show PHP user in system info
* New: Support up to WordPress 5.1

= 2.7.5 =
* New: Add new db table selection manager
* New: Allow selection of db tables which has no WP prefix
* Tweak: DB tables and file verification opened as default option
* Tweak: clean up search & replace method
* Fix: Continue cloning if siteurl & home in wp_options could not be changed

= 2.7.4 =
* Fix: wp-config is not copied to the staging site when site is cloned to external database and on multisites
* Fix: Log file folder does not have correct permission 0755
* Tweak: Better warning for update method
* Tweak: Add notice to save permalink settings after pushing
* New: Support search & replace over single or double stroke constants definitions in wp-config.php
* New: New faq entry (page not found error 404)
* New: Bedrock compatibility. Create default wp-config.php if original wp-config is not in the default path

= 2.7.3 =
* Fix: Make sure that active user is not logged out while pushing the staging site
* Fix: Stop delete process if staging site has been deleted manually before
* Fix: Plugin not translated properly

= 2.7.2 =
* Fix: If backslash is contained in password of external database then the pushing fails
* Fix: Improve search & replace parameter for url’s
* New: Explain the target directory
* New: Remove folder Library and move class Browser to Utils

= 2.7.1 =
* New: Better word of possible consequences before pushing for woocommerce owners
* New: Add FAQ to footer

= 2.7.0 =
* New: Tested up to WordPress 5.0.3 Gutenberg
* New: Skip table columns with more than 5MB for search & replace operations to inmprove performance

= 2.6.9 =
* Fix: WP Staging does not run with old WordPress version 3.2

= 2.6.8 =
* New: Tested up to WordPress 5.0.2 Gutenberg
* Fix: Error no such file in systeminfo
* Fix: Prevent throwing error when table prefix of table usermeta can not be changed
* Fix: If backslash is contained in password of external database then the processing fails
* Fix: Pushing interrupts if password of current user is different on staging and live site

= 2.6.7 =
* Fix: Can not login to staging site . Changed minimum user capability to ‘manage_options’ instead ‘administrator’ ´

= 2.6.6 =
* New: Tested up to WordPress 5.0 Gutenberg
* New: Tested up to WordPress 5.0.1 Gutenberg
* New: Check if WordPress version number of staging and production site is identical before pushing
* New: Show WP version of staging site in the sysinfo log
* Fix: Make sure optimizer must-use plugin is updated as well after updating the main plugin
* Fix: When custom upload_path is used upload path is broken after pushing
* Fix: Security, prevent downloading wp staging log files by third party users from uploads folder
* Fix: Prevent error $this not in object context in install.php

= 2.6.5 =
* SKIP *

= 2.6.4 =
* New: Support for custom and non-default wp-content and uploads folder
* Fix: Redirect to the correct url after log in to staging site
* Fix: Supports HTML entities in links created by WP Backery Page Builder Plugin
* Fix: Error 500 on some systems when files are collected and plugin iterates through the directories

= 2.6.3 =
* Fix: WP Staging plugin not excluded from being pushed
* Fix: Updating staging site does not exclude Windows IIS configuration file web.config
* Fix: Cloning to external db: custom prefix is ignored

= 2.6.2 =
* Fix: Media links are not correct after push if site is in subfolder

= 2.6.1 =
* New: Allow cloning to external database
* New: Allow cloning to a custom hostname like a subdomain
* New: Allow cloning to a custom destination folder

= 2.6.0 =
* New: Increase file scanning process performance
* New: Add delay between requests setting to prevent timeouts on rate limited servers
* New: Try again automatically cloning process if ajax request has been killed due to server ressource limit error

* Fix: remove ? parameter from staging site
* Fix: Do not load theme while WP Staging is running. Prevents processing interruption if there are fatal errors in the theme
* Fix: Missing debugging variable in preserve options array
* Fix: Error when removing heartbeat api
* Fix: If wp_options is excluded from pushing it will throw a fatal error
* Fix: When cloning has been canceled page needs to be reloaded before beeing able to clone again
* Fix: Windows IIS server compatibilility issues resolved
* Fix: Directory iterating is exceading php maximum execution time
* Fix: Prevent error 503 (firewall/performance timeout) by adding post parameter to the ajax url
* Fix: Adding automatic resume function to the ajax processing to prevent cloning and pushing interruptions due to hitting server ressource or network glitches.
* Fix: Selected folders are not excluded under Windows IIS server

= 2.5.9 =
* Fix: Do not delete staging site if listed site has no table prefix
* Fix: Requirements Check not working as intended
* Fix: Prevent multiple copy of wp_user and wp_user meta on multisite cloning
* New: New filter for adding custom tables to exclude from pushing

= 2.5.8 =
* New: Allow Cloning to separate database (not ready, yet)
* New: Support for wp-config.php located in one level up of the root folder for multisites
* New: Allow exclusion of custom options from wp_options from beeing pushed
* New: Make sure Optimizer is installed and activated
* Tweak: Better looking UI elements

= 2.5.7 =
* Fix: Some of the excluded files from copying process were ignored
* Fix: Do not clone db.php, object-cache.php and advanced-cache.php
* Fix: Show error message if ajax requests fail for any reason
* New: Allow search & replace of url encoded links like domain.com%2Fstaging-site (Used by visual composer)
* New: Set WP_CACHE to false in wp-config.php after cloning to prevent log in issues to staging site
* New: Compatibility mode to skip certain tables from third party plugins from beeing searched & replaced

= 2.5.6 =
* Fix: Images are copied into wrong location after pushing multisites.
* Fix: WP Staging job file not excluded from pushing process leads to wrong or incomplete list of files to push

= 2.5.5 =
* Fix: Different scheme of siteurl and home leads to non available staging site. Show admin notice to ask user to fix that first before creating a staging site
* Fix: Multisites not pushed 100% correct
* New: Support for multisite blogs.dir structure for WordPress 3.5 and lower
* New: Show error if there is not enough free diskspace
* New: Better looking admin notices
* New: Show admin notice if php version and wordpress version do not meet requirements.
* New: Add resume function
* New: Add italian translation

= 2.5.4 =
* Fix: Remove heartbeat only on wp staging admin pages
* Fix: WordPress custom upload path variable upload_path could be wrong after cloning
* Fix: Increase maximum allowed memory consumption
* Tweak: Increase cloning performance

= 2.5.3 =
* Fix: Add version number to css and js files to prevent caching issues
* Fix: Search % Replace during pushing does not replace escaped path delimiters like \/
* Fix: Wrong text domain in a few language strings
* Fix: Optimizer mu-plugin not installed all the time
* Fix: Language files not loaded correctly

= 2.5.2 =
* New: Compatible to WordPress 4.9.8
* New: Support for Windows Azure cloud servers
* New: Add filter to exclude strings from search & replace, docs: https://wp-staging.com/docs/actions-and-filters/
* New: Add filter to change search & replace parameters
* New: Add language files and change text domain to slug of the plugin
* New: Enable Optimizer as default option
* New: Disable heartbeat api and user login check for wp staging processing
* Fix: Missing http(s) scheme after cloning multisites results in not working clones
* Fix: Folder permission notice is shown because wrong home path is detected

= 2.5.1 =
* New: Compatible to WordPress 4.9.7
* Fix: Remove term ‘Error’ from login page
* New: Better error reporting
* New: Detect if wp-config.php has been moved one folder level up
* New: Login options not needed any more – removed

= 2.5.0 =
* Fix: Empty error message in log
* Fix: Do not search & replace mail addresses
* New: Add more details into the system info log

= 2.4.9 =
* New: Supports WordPress 4.9.7
* Fix: Search & Replace not working if serialized object contains __PHP_Incomplete_Class_Name
* Fix: Search & replace path not correct if scheme http/https is not identical in wp-config and db wp_options

= 2.4.8 =
* Fix: Search & Replace not working if serialized object contains __PHP_Incomplete_Class_Name

= 2.4.7 =
* Fix: Undefined object $this->tables
* Fix: Can not open upload folder in file selection menu
* Fix: Ignore url scheme (http/https) when using search & replace on url paths
* Fix: wp-config.php not copied when previous clone updating process has been failed
* Fix: Parameter must be an array or an object that implements Callable
* Fix: Skip search & replace for objects where key is null
* Tweak: Remove certain debugging notices from the default log window

= 2.4.6 =
* Security: Do not allow to create a new staging site into a subfolder which already exists
* Tweaks: Move confirmation dialog for update function after file & db table exclusion interface
* Tweaks: If site to clone is a multisite main site allow the selection of all relevant tables and exclude multisite child tables prefixed with wp_1_, wp_2_ and so on
* Tweaks: remove term “error” from several log entries
* Fix: Excluded folders are still copied while using push function
* Fix: Progress bar for step ‘database’ is not filling up to 100%
* Fix: If cloning update process is interrupted it may happen that staging site is not available any longer. (Updating the clone does not copy index.php to staging site again)
* Fix: Progress bar not shown as intended for clone updating process
* New: Use the new progress bar for clone updating process
* New: Option to allow adjustment of the allowed maximum size of files that are going to be copied while cloning.

= 2.4.5 =
* New: Support for WordPress 4.9.6
* New: Add new setting to specify the maximum file size to copy
* Fix: Missing trailingslash results to wrong absolute paths in database after Search & Replace operation

= 2.4.4 =
* New: Support for custom upload folder. For instance, if upload folder has been renamed and removed outsite wp-content folder
* New: Add cloning / updated date time to list of staging sites
* New: Add filter ‘wpstg_filter_options_replace’ to exclude certain tables from updating while cloning
* New: Exclude tables for plugin wp_mail_smtp
* New: Add filter ‘wpstg_fiter_search_replace_rows’ to exclude certain tables from search & replace
* New: Supports search & replace for revslider image slider and several visual editors which are using non default serialized data
* New: Add new setting which allow to specify the search & replace processing query limit
* Fix: Do not stop pushing process if there are duplicate entries
* Fix: Folder not copied if it begins with same name like excluded one e.g. upload vs. upload_new

= 2.4.3 =
* Fix: If wp_options HOME is empty the pushing process interrupts
* Fix: Serialize replace is not working properly for serialized strings

= 2.4.2 =
* Fix: All methods should be private in class SearchReplace
* Fix: Stop cloning if wp_usermeta or wp_options can not be adapted
* Fix: If live site is in subfolder and staging site has been created in subfolder on same level the push process is not working
* Fix: PHP 7.2 is not countable warning
* Fix: PHP 7.2 can not replace data in objects when object is incomplete (__PHP_Incomplete_Class_Name)
* Fix: Fatal error due to high memory consumption
* New: Link to support section

= 2.4.1 =
* Fix: Under certain circumstances it might happen that Search Engine Visibility is disabled on the live site after pushing staging site.

IMPORTANT: Check your website. Go to WordPress > Settings > Reading > Search Engine Visibility and make sure that the checkbox is unticked

* Fix: If WPML is used the live site is not reachable
* New: Use fully custom login form to prevent access denied issues on sites where access to wp-login.php is denied or redirection plugins are used

= 2.4.0 =
* Fix: If PHP 5.6.34 is used, the pushing process is not executing all necessary data replacement steps

= 2.3.9 =
* New: Compatible up to WP 4.9.5
* New: Allow to select and copy extra folders that are on the root level
* Tweak: Change WP_HOME or WP_SITEURL constants if they are defined in wp-config.php of staging site
* Tweak: Only wp root folders are pre selected before cloning is starting
* Fix: Incorrect login path to staging site if WordPress is installed in subdirectory
* Fix: Cloning process terminats if no tables are selected
* Fix: Login url is wrong if WP is installed in subfolder
* Fix: Do not interrupt cloning process if there is a sql error ‘duplicate table’
* Fix: WP Staging Pro plugin is not copied to staging site initially if wp staging free plugin has been excluded. Resulting in broken staging site

= 2.3.8 =
* New: Replace even hardcoded links and server path by using search & replace through all staging site database tables
* New: New and improved progress bar with elapsed time
* New: Compatible to WP 4.9.5
* Fix: Cancel cloning does not clean up unused tables and leads to duplicate tables
* Fix: Login url wrong if wp is installed in subfolder
* Tweak: Better error messages
* Tweak: Open staging site in same window from login request

= 2.3.7 =
* New: Option to set Custom Login Link if there is one
* New: Set meta noindex for staging site to make it non indexable for search engines
* New: Better multiple folder selection. Allows to unselect a parent folder without collapsing all child folders
* New: Sorted list of folders to copy
* New: Add more sys info elements under tools section
* Fix: Can not login to staging site if plugin All In One WP Security & Firewall is used
* Fix: Staging site not reachable because permalinks are not disabled under certain conditions
* Fix: Change default login link to wp-admin
* Fix: Unneccessary duplicates of wpstg tables in db

= 2.3.6 =
* Fix: Better finishing message
* Fix: Old staging site is not listed and pushing is not working properly when plugin is updated from wp staging version 1.6 and lower
* Fix: Undefined property: stdClass::$totalFileSize

= 2.3.5 =
* Fix: Minnor code issues
* Fix: Skip directory listings for symlinks

= 2.3.4 =
* Fix: License menu not shown if db option wpstg_is_staging_site === ‘false’
* Fix: Missing files from the staging folder /wp-content/uploads after migration

= 2.3.3 =
* Fix: Ignored selection “none selected tables” instead all of them are copied

= 2.3.2 =
* Fix: Get notice that operation is not allowed on live site
* Fix: Updating process failed with unknown error

= 2.3.1 =
* Fix: mod_security option is preventing cloning execution

= 2.3.0 =
* New: Remove setting “wordpress in subdir” and detects it automatically
* Fix: If WordPress is in subdir installed, siteurl & home is wrong after pushing process
* Fix: Missing table if table name contains two occurance of the table prefix e.g. wp_affiliate_wp_affiliates

= 2.2.9 =
* New: Search & Replace absolute path
* Fix: High memory consumption leads to timeouts

= 2.2.8 =
* New: Keep permalink structure of live site when migrating from staging site
* Tweak: Increase performance of pushing process by factor 3
* Fix: Hide db table and folder selection when pushing process starts
* Fix: Set permalink to default after updating clone
* Fix: Prevent user session expiration after pushing from live site
* Fix: Undefined property userRoles
* Tweak: Revert to previous loader.gif
* Tweak: Skip files collecting for excluded folders
* Tweak: Do not show license screen on staging site
* Tweak: Do not show lists of staging sites on staging sites

= 2.2.7 =
* New: Allow migrating of database
* Fix: Skipping files leads to interrupted pushing process

= 2.2.6 =
* Tweak: Return more human readable error notices
* Fix: Cloning process stops due to file permission issue
* Fix: Exclude WP Super Cache from copying process because of bug in WP Super Cache, see https://github.com/Automattic/wp-super-cache/issues/505
* New: Tested up to WP 4.9.2

= 2.2.5 =
* New: Allow pushing media folder wp-content/uploads
* Tweak: Throw error if there is not enough disk space for creating a cloning site

= 2.2.4 =
* New: increased speed for cloning process by factor 5, using new method of file agregation
* New: Skip files larger than 8MB
* Fix: Can not create clone If there is no php memory limit (-1)

= 2.2.3 =
* Fix: Additional checks to ensure that the root path is never deleted

= 2.2.2 =
* Fix: False error: can not push “live prefix table is same as staging table prefix”
* Fix: “Fatal error – The clone does not exist in database. This should not happen.”
* Fix: Not all files are pushed from staging to live site
* New: Tested up to WordPress 4.9

= 2.2.1 =
* Fix: Link to the staging site is missing a slash if WordPress is installed in subdir
* Fix: Missing files in clone site if copy file limit is higher than 1

= 2.2.0 =
* Fix: Cloning a new site results in [undefined]
* Fix: Show all tables from the tables selection dialogue and use default selection for correct tables
* Fix: If clone has been created with an older wp staging version its not possible to use the update function
* Fix: File Copy Limit settings default value is 1 now, which prevents some cases where not all files were copied over
* Fix: Missing files in clone site if copy file limit is higher than 1
* Tweak: Remove table wpstg_rmpermalinks_executed when plugin is uninstalled

= 2.1.9 =
* New: Allow selection of db tables with wpstg_ prefix in the table selection dialog
* Fix: Deleting process throws timout issues and php notices
* Fix: Link to staging site is undefined when staging name contains space characters
* Fix: If file copy limit is lower than 500, not all files are copied in all cases
* Fix: Increase file copy performance
* Fix: Cloning update function created new staging tables everytime it is run

= 2.1.8 =
* New: Allow deactivation of Optimizer plugin
* Fix. Update clone not working

= 2.1.7 =
* Fix: Sanitize Clone Names and Keys to fix “clone not found” issue
* Fix: New file clone limit of 10 files per batch to fix godaddy ajax 404 issues

= 2.1.6 =
* Fix: Remove LOCK_EX parameter in file_put_contents(). LOCK_EX is not working on several systems which results in cloning process timeouts
* Fix: Limit maximum execution time to 30 seconds
* New: New setting to specify the maximum amount of files copied within one ajax call
* Fix: Error 500 when debug mode is activated

= 2.1.5 =
* Fix: Remove test string from staging site
* Fix: Huge Performance improvement in copying process by removing duplicate file entries in the cache file. This also prevents weird timeout issues on some hosted websites

= 2.1.4 =
* Testing: resetMemory() not allowed
* New: Add link to tutorial how to push changes to live site

= 2.1.3 =
* Fix: Can not login to staging site

= 2.1.2 =
* New: Exclude unneccessary files from cloning process: .tmp, .log, .htaccess, .git, .gitignore, desktop.ini, .DS_Store, .svn
* New: More details for debugging in Tools->System Info
* Fix: Check if tables in staging site exists before attempting to modify them
* Fix: WordPress in sub directories were not opening
* Fix: Nonce check not working if nonce life time is filtered by another plugin WP Bug: https://core.trac.wordpress.org/ticket/41617#comment:1
* Fix: Access to staging site not working, if WP_SITEURL and WP_HOME is defined in wp-config.php
* Tweak: Exclude wp-content/cache folder from copying process

= 2.1.1 =
* Fix: Fatal error causing blank screen

= 2.1.0 =
* Fix: Frontpage not available without login

= 2.0.9 =
* New: Select which user role is able to access the staging site
* Fix: After update from wpstg 1.6.x to 2.x previous settings were not imported resulting in cancellation of cloning process

= 2.0.8 =
* Fix: css file are not loaded on wpstg admin screen

= 2.0.7 =
* Fix: Fatal error when some db tables are excluded
* Fix: Automatic update function not working

= 2.0.6 =
* Fix: Cancel Cloning button not working
* Fix: Limit max execution time to a maximum of 30sec to prevent high memory consumption and script timeouts

= 2.0.5 =
* Tweak: Improve deletion method
* Fix: Activation hook not running

= 2.0.4 =
* New: Installation of must use plugin to exclude other plugins from execution while wpstg is running and cloning website

= 2.0.3 =
* New: Complete rewrite of the code base
* New: Batch processing allows to clone even huge sites without any timeouts
* New: Preparation for WP QUADS PRO with ability to copy file changes back to live site

= 1.1.6 =
* New: Add download link to WP Staging Beta Version 2.0.1

= 1.1.5 =
* Fix: Admin notice is throwing a false positive write permission error
* New: Move log folder to wp-content/uploads/wp-staging/logs
* New: Tested up to WP 4.7.3

= 1.1.4 =
* Fix: Fatal error Unsupported operand types

= 1.1.3 =
* New: Tested up to wp 4.7.2
* Fix: Arrows in drop down for folder selection are distorted
* Tweak: Show working log as default to make debugging easier

= 1.1.2 =
* Fix: Settings are not deleted when plugin is removed
* Fix: Staging site is available for non administrators

= 1.1.1 =
* Fix: Change rating url

= 1.1.0 =
* New: Tested up to WP 4.6
* New: Create a poll and ask what feature is most required

= 1.0.9 =
* Fix: Undefined WPSTG() warning
* Fix: Change compatibility version to wp 4.5.3

= 1.0.8 =
* Tested up to WP 4.5.2

= 1.0.7 =
* Fix: Activation hook is not fired and staging site is not working properly
* Performance: Increase default query copy limit to 1000

= 1.0.6 =
* Fix: Uninstalling plugin throwing error
* Fix: Error permission admin notice although permission issues are correct

= 1.0.5 =
* New: Tested up to WP 4.5
* Fix: Download system log not working
* Fix: Click on Optimizer “Select all | none | invert” links leads to jumping
* Tweak: Make clear that unselecting a checkbox will exlude table or file from copy process
* Tweak: Remove unnecessary text
* Tweak: Change beta notice in dashboard. WP Staging is stable
* Tweak: Change twitter handle to @wpstg

= 1.0.3 =
* Fix: Missing const MASHFS_VERSION
* Fix: Remove error “table XY has been created, BUT inserting rows failed.”
* Fix: Not tested up to 4.4.2 message shown although it’s tested up to WP 4.4.2
* New: Disable either free or pro version and does not allow to have both version enabled at the same time

= 1.0.2 =
* Tweak: Change setting description of uninstall option
* Tweak: Lower tags in readme.txt

= 1.0.1 =
* New: Orange colored admin bar on staging site for better visualization and comparision between production live site and staging site
* Tweak: Remove contact link on multisite notification

= 1.0.0 =
* Fix: Do not follow symlinks during file copy process
* Fix: css error
* Fix: Show “not-compatible” notice only when blog version is higher than plugin tested version.
* Fix: undefined var $size
* Fix: Check if $path is null before writing to remaining_files.json
* Fix: $db_helper undefined message
* Fix: Skip non utf8 encoded files during copying process