Σ(゚Д゚;≡;゚д゚)Σ(゚Д゚;≡;゚д゚)Σ(゚Д゚;≡;゚д゚)始,故人唐宰相鲁公,🆚开府南服,余以布衣从戎。明年,别公漳水湄。后明年,公以事过张睢阳庙及颜杲卿所尝往来处,悲歌慷慨,卒不负其言而从之游。今其诗具在,可考也。😭
home/studionolh/www/wp-content/plugins/cookie-notice/readme.txt 0000644 00000050611 15233337246 0021030 0 ustar 00 === Cookie Notice & Compliance for GDPR / CCPA ===
Contributors: humanityco
Tags: gdpr, ccpa, cookies, consent, compliance, privacy
Requires at least: 4.9.6
Requires PHP: 5.4
Tested up to: 6.4.1
Stable tag: 2.4.12
License: MIT License
License URI: http://opensource.org/licenses/MIT
Cookie Notice allows you to you elegantly inform users that your site uses cookies and helps you comply with GDPR, CCPA and other data privacy laws.
== Description ==
<strong>Cookie Notice</strong> provides a simple, customizable website banner that can be used to help your website comply with certain cookie consent requirements under the EU GDPR cookie law and CCPA regulations and includes <strong>seamless integration</strong> with Cookie Compliance to help your site comply with the latest updates to existing consent laws.
<strong>Cookie Compliance</strong> is a fully featured Consent Management Platform (CMP) that provides automated compliance features and enhanced design controls in a state-of-the-art web application. Cookie Compliance enables websites to <strong>take a proactive approach to data protection and consent laws</strong>. It is the first solution to offer Intentional Consent, a new consent framework that incorporates the latest guidelines from over 100+ countries, and emerging standards from leading international organizations like the IEEE and European Center for Digital Rights (noyb.eu). Cookie Compliance provides a beautiful, multi-level experience and includes new choices and controls for site visitors to better understand and engage in data privacy decisions.
> Our Cookie Compliance web application introduces a more ethical, proactive way to capture and manage consent. This early version of the emerging Intentional Consent framework is a result of Hu-manity.co’s ongoing work with top Fortune 500 companies, governments, and standards organizations, who believe that the imbalanced relationship between consumers and corporations is unsustainable when it comes to data privacy and consent online. We are making it available for all website owners and operators who share this belief and support our mission to eliminate the dark patterns in online consent.<br>
> Matt Sinderbrand - Chief Platform Officer, Hu-manity.co
## Cookie Notice (plugin only)
Cookie Notice provides a simple, customizable website banner to help your website comply with certain cookie consent requirements.
= Banner features: =
* Customizable notice message
* Consent on click, scroll or close
* Multiple cookie expiry options
* Link to Privacy Policy page
* WordPress Privacy Policy page synchronization
* WPML and Polylang compatible
* SEO friendly
## Cookie Compliance (plugin + web application)
Cookie Compliance gives you access to the most up-to-date formatting guidelines and technical compliance requirements for over 100 countries and legal jurisdictions.
= Banner features: =
* <strong>Intentional Consent</strong> provides 3 equal buttons to give site visitors the ability to accept none, some, or all cookies through packaged choices called Data Access Levels. Data Access Levels improve consent conversion and eliminate the dark pattern of deceptive, non-equal choices in the first layer. <em>Complies with equal choice principle prescribed under GDPR and other data protection laws.</em>
* <strong>Consent duration selector</strong> gives visitor control over how long their consent remains valid for your site. <em>Enables your site to align with recent guidelines from EU Data Protection Authorities, which state that cookie consent should be valid for no longer than a period of 6 months.</em>
* <strong>Cookie purpose categories</strong> make it easy for website visitors to customize their consent by category. <em>Complies with affirmative, opt-in consent requirements prescribed under GDPR and other data protection laws.</em>
* <strong>Consent metrics</strong> displays the visitor's consent record and a list of blocked / allowed 3rd parties directly in the expanded level of the banner. <em>Complies with latest guidance from EU Data Protection Authorities like CNIL (France) and ICO (UK). </em>
* <strong>Customizable Privacy Paper</strong> provides helpful information to improve visitor comprehension and understanding of the data sharing risks and benefits. Allows you to summarize core components of your sites privacy notice and <em>aligns with the informed principle prescribed by GDPR rules for valid consent capture. </em>
* <strong>Configurable Privacy Contact</strong> allows you to provide contact information for a business’ data privacy admin, as well as helpful links to data subject request forms and other data privacy resources. <em>Aligns with the informed principle prescribed by GDPR rules for valid consent capture.</em>
= Web Application features: =
* <strong>Consent analytics dashboard</strong> shows event data for number of visits and provides a “trust score” to help you track how site visitors are setting their consent. Make adjustments to your banner to improve your cookie acceptance rate and monitor progress via the consent activity graph.
* <strong>Default configurations</strong> for GDPR, CCPA and more help to remove dark patterns and allow for quick and easy deployment of the consent banner without any guesswork. Customize the design of any default configuration to match the look and feel of your site.
* <strong>Automatic script blocking</strong> blocks all non-essential cookie scripts and iFrames by default and <em>complies with valid consent rules under GDPR and other data protection laws</em>; in order to be compliant, your site must record visitor consent before setting or sending cookies.
* <strong>Consent record storage</strong> automatically stores a record of each consent and makes these records available for export. <em>Complies with proof-of-consent requirements prescribed under GDPR and other data protection laws.</em>
* <strong>Multilingual support</strong> automatically translates all banner text strings and allows you to provide custom translations for every text field to ensure visitors get a consistent consent experience.
* <strong>Multidomain management</strong> allows you to manage additional Free or Professional domains under a single account and enables you to customize banner configuration and design for each domain independently.
= Cookie Compliance proactive approach: =
For all businesses, the resources required to stay ahead of the latest regulations increases with the passage of each new law. With enforcement of compliance violations increasing daily, we believe it is critical for us as a trusted consent vendor to do everything in our power to help you stay ahead of these laws and remove the risk to your business
<strong>Cookie Compliance covers all current and upcoming regulations:</strong>
* GDPR (EU)
* ePrivacy Directive (EU)
* ePrivacy Regulation (EU)
* PECR (UK)
* LGPD (Brazil)
* PIPEDA (Canada)
* PDPB (India)
* CCPA (California, US)
* VCDPA (Virginia, US)
* Colorado Privacy Act (US)
* CPRA (California, US)
<strong>Cookie Compliance incorporates all recent formatting guidance:</strong>
* European Data Protection Supervisor (EDPS)
* ICO (United Kingdom)
* CNIL (France)
* GPDP (Italy)
* BfDl (Germany)
* AEPD (Spain)
* European Center for Digital Rights (noyb.eu)
<strong>Cookie Compliance targets dark patterns</strong>
Dark Patterns are user interface (UI) techniques that push site visitors to make decisions (such as agreeing to the installation of cookies on their devices) that they might not otherwise make. The most common Dark Pattern is the lack of an equal “reject all” button on the first layer of the consent notice. Dark Patterns are explicitly banned under GDPR and other data protection laws.
As a part of our proactive approach, Cookie Compliance is configured by default to prevent Dark Patterns through our unique Intentional Consent design.
== Installation ==
1. Install Cookie Notice either via the WordPress.org plugin directory, or by uploading the files to your server
2. Activate the plugin through the 'Plugins' menu in WordPress
3. Go to the Cookie Notice settings and set your options.
4. Click "Add Compliance features" button to start Cookie Compliance integration.
5. Create Cookie Compliance account and select plan.
6. Log in to Cookie Compliance web application anytime to customize the settings.
== Frequently Asked Questions ==
= Is Cookie Notice free? =
Yes! Cookie Notice is a free software.
= Is Cookie Compliance free? =
Yes, but with limits. Cookie Compliance includes both free and paid plans to choose from depending on your needs and your website traffic.
= Does the Cookie Notice make my site fully compliant with GDPR or US Privacy Laws? =
No. The plugin-only version DOES NOT include technical compliance features such as automatic script blocking, consent purpose categories, or consent record storage. These features are only available through the Cookie Compliance integration.
= Does the Cookie Compiance integration make my site fully compliant with GDPR and US Privacy Laws? =
Yes! The plugin + web appliaction version includes technical compliance features to meet requirements for over 100 countries and legal jurisdictions.
== Screenshots ==
1. Cookie Notice settings, Compliance itegration inactive
2. Cookie Notice settings, Compliance itegration active
3. Cookie Compliance dashboard overview
4. Cookie Compliance settings
== Changelog ==
= 2.4.12 =
* New: WP Optimize caching plugin compatibility
* Fix: WP Fastest Cache plugin compatibility
= 2.4.11 =
* New: Dedicated Consent Logs page
* New: Google AMP support for Cookie Compliance
* New: Settings navigation through tabs and menu items
* Fix: Saving App ID/Key not working in edge cases
* Tweak: Chart.js updated to 4.4.0
= 2.4.10 =
* New: Option to enable/disable caching compatibility
* New: WP Fastest Cache plugin compatibility
* Fix: Potential security issue with purging cache
* Fix: Improved refreshing Compliance analytics data
* Tweak: Chart.js updated to 4.3.2
= 2.4.9 =
* New: WP Rocket plugin compatibility
* New: LiteSpeed Cache plugin compatibility
* New: Google Consent Mode support (Cookie Compliance only)
* New: Facebook Pixel Consent Mode support (Cookie Compliance only)
= 2.4.8 =
* New: Added Pages to Conditional display
* Fix: Homepage display issue
* Fix: Background color issue
* Tweak: Improved WP Rocket support
* Tweak: Improved SG Optimizer support
= 2.4.7 =
* New: Conditional display of the banner
* Tweak: Improved sanitization and validation of data
* Tweak: PHP 8.1 and 8.2 compatibility
* Tweak: Added async attribute when autoblocking is disabled
= 2.4.6 =
* Fix: Cookie Compliance inactive status issue
= 2.4.5 =
* Tweak: Remove the notice from the Elementor page builder
* Tweak: Remove the notice from widgets screen
* Fix: Improved Contact Form 7 reCaptcha compatibility
= 2.4.4 =
* Fix: Undefined index: status and subscription
= 2.4.3 =
* Fix: Deprecated preg_replace() notice in PHP 8.1
= 2.4.2 =
* New: Compatibility with Autoptimize plugin
* Fix: Improved Contact Form 7 reCaptcha support
* Fix: Fixed non-static method cookies_set()
= 2.4.1 =
* New: Contact Form 7 reCaptcha support
* Tweak: Switched health status from critical to recommended when Cookie Compliance is not integrated
* Tweak: Add SimeSite=Lax for created cookies
= 2.4.0 =
* New: Advanced Multisite support
* Fix: Polylang translation not working for shortcode
* Fix: Parse error: syntax error, unexpected ‘[‘
= 2.3.1 =
* New: Option to run consent banner in debug mode
* Fix: Invalid validation of dismissable notices
= 2.3.0 =
* New: Compliance Multi-license pricing options
* Tweak: WordPress 6.0 compatibility
= 2.2.3 =
* Fix: Undefined notice in WP dashboard
* Fix: Close icon event not firing
* Tweak: Remove aria-label from the close icon
* Tweak: CSS tweaks in the admin
= 2.2.2 =
* Fix: Uncrawlable close notice link
* Tweak: WordPress 5.9 compatibility
* Tweak: Prevent displaying the notice in an iframe
* Tweak: Send site language to a web app on signup
= 2.2.1 =
* Fix: Missing variable definition in frontend
= 2.2.0 =
* New: Option to hide banner for logged in users (Compliance only)
= 2.1.5 =
* Tweak: Additional sanitization applied
= 2.1.4 =
* Fix: Wordpress 5.8 widgets compatibility
= 2.1.3 =
* Fix: HTML attributes removed from text strings
* Tweak: Improved sanitization of options
= 2.1.2 =
* Tweak: Improved escaping of button labels
= 2.1.1 =
* Fix: Security bug related to compliance caching
= 2.1.0 =
* New: Introducing Cookie Compliance Free plan
= 2.0.4 =
* Fix: Undefined constant HOURS_IN_SECONDS
* Fix: Button style none adding CSS classes "cn-set-cookie cn-button"
* Tweak: Switched the behavior of close icon from accept to reject
* Tweak: Minified frontend and admin js files
= 2.0.3 =
* Fix: Cookies accepted function issue when Compliance activated
= 2.0.2 =
* Tweak: UI/UX improvements
= 2.0.1 =
* Fix: Pending Compliance update blocking the notice
* Fix: PHP Warning: Cannot modify header information
* Tweak: UI/UX fixes for the settings screen
= 2.0.0 =
* New: Introducing Cookie Compliance for GDPR/CCPA
= 1.3.2 =
* Tweak: Speed up Corona Banner loading by moving JS file to footer with async parameter
* Tweak: Improve buttons CSS padding
* Tweak: Accessibility improvements on links
= 1.3.1 =
* Fix: Unable to select Privacy policy link
* Fix: Blank Cookies policy link in a message
* Fix: Undefined index: on_click
* Tweak: Adjusted default opacity back to 100
= 1.3.0 =
* New: Introducing Corona Banner that displays data about Coronavirus pandemia and five steps recommended by the WHO (World Health Organization)
* New: Option to set bar opacity
* New: Accept the notice with close icon
* Fix: Policy link added to message without policy option enabled
= 1.2.51 =
* Fix: Problems with iOS and OK/Reject button
* Tweak: Added Separate cookie expiry for Reject, props Carlos Buchart
= 1.2.50 =
* Fix: The body css class always set to "cookies-refused"
* Tweak: Improve IE & Safari CustomEvent and ClassList support
* Tweak: Change the plugin js init event
= 1.2.49 =
* New: Option to accept the notice with any page click
* Tweak: Remove jQuery dependency
* Tweak: Swtich from jQuery to CSS3 animations
* Tweak: Improve the CSS and HTML structure
= 1.2.48 =
* Fix: HTML tags stripped from cookie message
* Fix: Link target not accepted in inline privacy link
= 1.2.47 =
* New: Option to select the privacy policy link position
* Tweak: Do not relad the page on refuse button click
* Tweak: Added aria-label attribute to cookie notice container
= 1.2.46 =
* Tweak: Remove WP Super Cache cookie on deactivation
* Tweak: Remove plugin version from the db on deactivation
= 1.2.45 =
* Tweak: Improved WP Super Cache support
* Tweak: CSS container style issue and media query for mobile
= 1.2.44 =
* Fix: The text of the revoke button ignored in shortcode
* Fix: Revoke consent button not displayed automatically in top position
* Tweak: Add shortcode parsing for content of [cookies_accepted], thanks to [dsturm](https://github.com/dsturm)
= 1.2.43 =
* New: Option to revoke the user consent
* New: Script blocking extended to header and footer
* New: Synchronization with WordPress 4.9.6 Privacy Policy page
* New: Custom button class option
* Tweak: Added 1 hour cookie expiry option
= 1.2.42 =
* New: Introducing [cookies_accepted][/cookies_accepted] shortcode
* Fix: Infinite cookie expiry issue
= 1.2.41 =
* Fix: Infinite redirection loop with scroll enabled
= 1.2.40 =
* Fix: Div align center on some themes
* Tweak: Extended list of allowed HTML tags in refuse code
* Tweak: Minified CSS and JS
= 1.2.39 =
* New: Option to reload the page after cookies are accepted
= 1.2.38 =
* Tweak: Move frontend cookie js functions before the document ready call, thanks to [fgreinus](https://github.com/fgreinus)
* Tweak: Adjust functional javascript code handling
* Fix: Chhromium infinity expiration date not valid
* Fix: Remove deprecated screen_icon() function
= 1.2.37 =
* Tweak: Add aria landmark role="banner"
* Tweak: Extend cn_cookie_notice_args with button class
= 1.2.36.1 =
* Fix: Repository upload issue with 1.2.36
= 1.2.36 =
* Fix: String translation support for WMPL 3.2+
* Fix: Global var possible conflict with other plugins
* Tweak: Add $options array to "cn_cookie_notice_output" filter, thanks to [chesio](https://github.com/chesio).
* Tweak: Removed local translation files in favor of WP repository translations.
= 1.2.35 =
* Tweak: Use html_entity_decode on non-functional code block
* Tweak: get_pages() function placement optimization
* Tweak: Filterable manage cookie notice capability
= 1.2.34 =
* Fix: Empty href in links HTML validation issue
= 1.2.33 =
* New: Greek translation thanks to Elias Stefanidis
= 1.2.32 =
* Fix: Accept cookie button hidden on acceptance instead of the cookie message container
= 1.2.31 =
* New: Non functional Javascript code field
* Fix: Minified Javascript caching issue
= 1.2.30 =
* Fix: jQuery error after accepting cookies
= 1.2.29 =
* Tweak: Add class to body element when displayed
* Tweak: Italian translation update
= 1.2.28 =
* New: Option to set on scroll offset
= 1.2.27 =
* Tweak: Correctly remove scroll event, limit possible conflicts
* Tweak: Italian translation update
= 1.2.26 =
* Fix: Accept cookies on scroll option working unchecked.
* Fix: call_user_func() warning on lower version of WP
= 1.2.25 =
* New: Option to accept cookies on scroll, thanks to [Cristian Pascottini](http://cristian.pascottini.net/)
= 1.2.24 =
* New: Option to refuse to accept cookies
* New: setCookieNotice custom jQuery event
* Tweak: Italian translation updated, thanks to Luca Speranza
= 1.2.23 =
* New: Finnish translation, thanks to [Daniel Storgards](www.danielstorgards.com)
= 1.2.22 =
* Tweak: Swedish translation updated, thx to Ove Kaufeldt
= 1.2.21 =
* New: Plugin development moved to [dFactory GitHub Repository](https://github.com/dfactoryplugins)
* Tweak: Code cleanup
= 1.2.20 =
* New: Option to select scripts placement, header or footer
= 1.2.19 =
* New: Danish translation, thanks to Lui Wallentin Gottler
= 1.2.18.1 =
* Fix: Quick fix for 1.2.18 print_r in code
= 1.2.18 =
* New: More info link target option
* Tweak: Additional HTML ids, for more flexible customization
= 1.2.17 =
* New: Hebrew translation, thanks to [Ahrale Shrem](http://atar4u.com/)
= 1.2.16 =
* Tweak: Dutch translation missing due to a typo
= 1.2.15 =
* New: Danish translation, thanks to Hans C. Jorgensen
* Fix: Notice bar not visible if no animation selected
= 1.2.14 =
* New: Hungarian translation, thanks to [Surbma](http://surbma.hu)
= 1.2.13 =
* New: Croatian translation, thanks to [Marko Beus](http://www.markobeus.com/)
= 1.2.12 =
* New: Slovenian translation, thanks to Thomas Cuk
= 1.2.11 =
* New: Swedish translation, thanks to [Daniel Storgards](http://www.danielstorgards.com/)
= 1.2.10 =
* New: Italian translation, thanks to [Luca](http://www.lucacicca.it)
* Tweak: Confirmed WP 4.0 compatibility
= 1.2.9.1 =
* Tweak: Enable HTML in cookie message text
* New: Option to donate this plugin :)
= 1.2.8 =
* New: Czech translation, thanks to [Adam Laita](http://laita.cz)
= 1.2.7 =
* New: French translation, thanks to [Laura Orsal](http://www.traductrice-independante.fr)
* New: Deleting plugin settings on deactivation as an option
= 1.2.6 =
* New: German translation, thanks to Alex Ernst
= 1.2.5 =
* New: Spanish translation, thanks to Fernando Blasco
= 1.2.4 =
* New: Added filter hooks to customize where and how display the cookie notice
= 1.2.3 =
* New: Portuguese translation, thanks to Luis Maia
= 1.2.2 =
* Fix: Read more linking to default site language in WPML & Polylang
= 1.2.1 =
* Tweak: UI improvements for WP 3.8
= 1.2.0 =
* Fix: Cookie not saving in IE
* Fix: Notice hidden under Admin bar bug
* Tweak: Improved WPML & Polylang compatibility
= 1.1.0 =
* New: Rewritten cookie setting method to pure JS
* Fix: Compatibility with WP Super Cache and other caching plugins
= 1.0.2 =
* New: Dutch translation, thanks to Heleen van den Bos
= 1.0.1 =
* Tweak: Changed setting cookie mode from AJAX to JS driven
= 1.0.0 =
Initial release
== Upgrade Notice ==
= 2.4.12 =
* New: WP Optimize caching plugin compatibility
* Fix: WP Fastest Cache plugin compatibility home/studionolh/www/wp-content/plugins/classic-editor/readme.txt 0000644 00000020114 15233351415 0021172 0 ustar 00 === Classic Editor ===
Contributors: wordpressdotorg, azaozz, melchoyce, chanthaboune, alexislloyd, pento, youknowriad, desrosj, luciano-croce, ironprogrammer
Tags: classic editor, block editor, editor, gutenberg
Requires at least: 4.9
Tested up to: 7.0
Stable tag: 1.7.0
Requires PHP: 5.2.4
License: GPLv2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Enables the previous "classic" editor and the old-style Edit Post screen with TinyMCE, Meta Boxes, etc. Supports all plugins that extend this screen.
== Description ==
Classic Editor is an official plugin maintained by the WordPress team that restores the previous ("classic") WordPress editor and the "Edit Post" screen. It makes it possible to use plugins that extend that screen, add old-style meta boxes, or otherwise depend on the previous editor.
Classic Editor is an official WordPress plugin, and will be fully supported and maintained until 2024, or as long as is necessary.
At a glance, this plugin adds the following:
* Administrators can select the default editor for all users.
* Administrators can allow users to change their default editor.
* When allowed, the users can choose which editor to use for each post.
* Each post opens in the last editor used regardless of who edited it last. This is important for maintaining a consistent experience when editing content.
In addition, the Classic Editor plugin includes several filters that let other plugins control the settings, and the editor choice per post and per post type.
By default, this plugin hides all functionality available in the new block editor ("Gutenberg").
== Changelog ==
= 1.7.0 =
* Added a hotfix for crowded elements in the publishing actions area in WordPress 7.0. See [Core-65286](https://core.trac.wordpress.org/ticket/65286) for more information.
= 1.6.7 =
* Fixed loading of script translations when post.js is replaced in WordPress 6.7.1.
= 1.6.6 =
* Added fix for selecting/deselecting multiple unwanted categories in WordPress 6.7.1 when clicking on a category checkbox on the old Edit Post screen.
= 1.6.5 =
* Added fix for Safari 18 negative horizontal margin on floats.
= 1.6.4 =
* Added support for administrators to choose the default editor for other users.
= 1.6.3 =
* Added some WPCS fixes, props NicktheGeek on GitHub.
* Updated "Tested up to" in the readme and removed it from classic-editor.php. This should fix false positive errors in security plugins in the future.
= 1.6.2 =
* Fixed bug that was preventing saving of the last used editor.
= 1.6.1 =
* Fixed a warning on the block editor based widgets screen.
* Fixed use of a deprecated filter.
= 1.6 =
* Updated for WordPress 5.5.
* Fixed minor issues with calling deprecated functions, needlessly registering uninstall hook, and capitalization of some strings.
= 1.5 =
* Updated for WordPress 5.2 and Gutenberg 5.3.
* Enhanced and fixed the "open posts in the last editor used to edit them" logic.
* Fixed adding post state so it can easily be accessed from other plugins.
= 1.4 =
* On network installations removed the restriction for only network activation.
* Added support for network administrators to choose the default network-wide editor.
* Fixed the settings link in the warning on network About screen.
* Properly added the "Switch to classic editor" menu item to the block editor menu.
= 1.3 =
* Fixed removal of the "Try Gutenberg" dashboard widget.
* Fixed condition for displaying of the after upgrade notice on the "What's New" screen. Shown when the classic editor is selected and users cannot switch editors.
= 1.2 =
* Fixed switching editors from the Add New (post) screen before a draft post is saved.
* Fixed typo that was appending the edit URL to the `classic-editor` query var.
* Changed detecting of WordPress 5.0 to not use version check. Fixes a bug when testing 5.1-alpha.
* Changed the default value of the option to allow users to switch editors to false.
* Added disabling of the Gutenberg plugin and lowered the required WordPress version to 4.9.
* Added `classic_editor_network_default_settings` filter.
= 1.1 =
Fixed a bug where it may attempt to load the block editor for post types that do not support editor when users are allowed to switch editors.
= 1.0 =
* Updated for WordPress 5.0.
* Changed all "Gutenberg" names/references to "block editor".
* Refreshed the settings UI.
* Removed disabling of the Gutenberg plugin. This was added for testing in WordPress 4.9. Users who want to continue following the development of Gutenberg in WordPress 5.0 and beyond will not need another plugin to disable it.
* Added support for per-user settings of default editor.
* Added support for admins to set the default editor for the site.
* Added support for admins to allow users to change their default editor.
* Added support for network admins to prevent site admins from changing the default settings.
* Added support to store the last editor used for each post and open it next time. Enabled when users can choose default editor.
* Added "post editor state" in the listing of posts on the Posts screen. Shows the editor that will be opened for the post. Enabled when users can choose default editor.
* Added `classic_editor_enabled_editors_for_post` and `classic_editor_enabled_editors_for_post_type` filters. Can be used by other plugins to control or override the editor used for a particular post of post type.
* Added `classic_editor_plugin_settings` filter. Can be used by other plugins to override the settings and disable the settings UI.
= 0.5 =
* Updated for Gutenberg 4.1 and WordPress 5.0-beta1.
* Removed some functionality that now exists in Gutenberg.
* Fixed redirecting back to the classic editor after looking at post revisions.
= 0.4 =
* Fixed removing of the "Try Gutenberg" call-out when the Gutenberg plugin is not activated.
* Fixed to always show the settings and the settings link in the plugins list table.
* Updated the readme text.
= 0.3 =
* Updated the option from a checkbox to couple of radio buttons, seems clearer. Thanks to @designsimply for the label text suggestions.
* Some general updates and cleanup.
= 0.2 =
* Update for Gutenberg 1.9.
* Remove warning and automatic deactivation when Gutenberg is not active.
= 0.1 =
Initial release.
== Frequently Asked Questions ==
= Default settings =
When activated and when using a classic (non-block) theme, this plugin will restore the previous ("classic") WordPress editor and hide the new block editor ("Gutenberg").
These settings can be changed at the Settings => Writing screen.
= Default settings for network installation =
There are two options:
* When network-activated and when using a classic (non-block) theme, this plugin will set the classic editor as default and prevent site administrators and users from changing editors.
The settings can be changed and default network-wide editor can be selected on the Network Settings screen.
* When not network-activated each site administrator will be able to activate the plugin and choose options for their users.
= Cannot find the "Switch to classic editor" link =
It is in the main block editor menu, see this [screenshot](https://ps.w.org/classic-editor/assets/screenshot-7.png?rev=2023480).
= Does this work with full site editing and block themes? =
No, as block themes rely on blocks. [See Block themes article](https://wordpress.org/support/article/block-themes/) for more information.
== Screenshots ==
1. Admin settings on the Settings -> Writing screen.
2. User settings on the Profile screen. Visible when the users are allowed to switch editors.
3. "Action links" to choose alternative editor. Visible when the users are allowed to switch editors.
4. Link to switch to the block editor while editing a post in the classic editor. Visible when the users are allowed to switch editors.
5. Link to switch to the classic editor while editing a post in the block editor. Visible when the users are allowed to switch editors.
6. Network settings to select the default editor for the network and allow site admins to change it.
7. The "Switch to classic editor" link.
home/studionolh/www/wp-content/plugins/loco-translate/readme.txt 0000644 00000047761 15233351514 0021235 0 ustar 00 === Loco Translate ===
Contributors: timwhitlock
Tags: translation, language, multilingual, l10n, i18n
Requires at least: 5.2
Requires PHP: 5.6.20
Tested up to: 6.7
Stable tag: 2.6.14
License: GPLv2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Translate WordPress plugins and themes directly in your browser
== Description ==
Loco Translate provides in-browser editing of WordPress translation files and integration with automatic translation services.
It also provides Gettext/localization tools for developers, such as extracting strings and generating templates.
Features include:
* Built-in translation editor within WordPress admin
* Integration with translation APIs including DeepL, Google, Microsoft and Lecto AI
* Create and update language files directly in your theme or plugin
* Extraction of translatable strings from your source code
* Native MO file compilation without the need for Gettext on your system
* Support for PO features including comments, references and plural forms
* PO source view with clickable source code references
* Protected language directory for saving custom translations
* Configurable PO file backups with diff and restore capability
* Built-in WordPress locale codes
Official [Loco](https://localise.biz/) WordPress plugin by Tim Whitlock.
For more information please visit our [plugin page](https://localise.biz/wordpress/plugin).
== Installation ==
= Basic usage: =
Translators: To translate a theme into your language, follow these steps:
1. Create the protected languages directory at `wp-content/languages/loco/themes`
2. Ensure this directory writeable by the web server
3. Find your theme in the list at *Loco Translate > Themes*
4. Click `+ New language` and follow the on-screen prompts.
Developers: To translate your own theme or plugin for distribution, follow these steps:
1. Create a `languages` subdirectory in your bundle’s root directory
2. Ensure this directory writeable by the web server
3. Find the bundle at either *Loco Translate > Themes* or *Loco Translate > Plugins*
4. Click `+ Create template` and follow the on-screen prompts to extract your strings.
5. Click `+ New language` and follow the on-screen prompts to add your own translations.
= Installing manually: =
1. Unzip all files to the `wp-content/plugins/loco-translate` directory
2. Log into WordPress admin and activate the 'Loco Translate' plugin through the 'Plugins' menu
3. Go to *Loco Translate > Home* in the left-hand menu to start translating
More information on using the plugin is [available here](https://localise.biz/wordpress/plugin).
== Frequently Asked Questions ==
Please visit the [FAQs page](https://localise.biz/wordpress/plugin/faqs) on our website for the most common issues.
= How do I use Loco Translate? =
Try our [Guides and Tutorials](https://localise.biz/wordpress/plugin#guides).
= How do I get more help? =
If you have a problem using Loco Translate, please try our [help pages](https://localise.biz/wordpress/plugin).
There's a lot of information there to help you understand how it works and the most common pitfalls to avoid.
To report a bug please start a new topic in the [support forum](https://wordpress.org/support/plugin/loco-translate),
but please check the [FAQs](https://localise.biz/wordpress/plugin/faqs) for similar issues first.
If you decide to submit a bug report please post enough [relevant detail](https://localise.biz/wordpress/plugin/faqs/debug-info) for us to reproduce your issue.
= Is my data protected? =
We don't collect your data or snoop on you. See the [plugin privacy notice](https://localise.biz/wordpress/plugin/privacy).
== Screenshots ==
1. Translating strings in the browser with the Loco PO Editor
2. Showing translation progress for theme language files
3. PO source view with text filter and clickable file references
4. Restore tab showing PO diff view with revert function
5. Showing access to translations by installed language
6. Suggestion feature showing results from several providers
== Changelog ==
= 2.6.14 =
* Critical fix: A relative path passed to `load_textdomain` no longer throws exception.
= 2.6.13 =
* Fix for direct calls to load_textdomain with custom paths
* This resolves a regression in 2.6.12
= 2.6.12 =
* Major fix to custom load_textdomain loader. Works when original file is absent
* Fixed bug in template comparison when JSON files need to be merged
* CSS fixes including reinstating of unsaved "star" icon
* Domain listener fixed for JIT loading
* Bumped WordPress compatibility to 6.7
= 2.6.11 =
* Removed accidental console trace
* Bumped WordPress compatibility to 6.6.0
* Added lang_dir_for_domain fix to handle system file absence
= 2.6.10 =
* Added loco_api_provider_{id} filter
* JSON compiler observes configured .js aliases
* Fixed a missing security check - thanks Nosa Shandy
* Added .blade.php tokenizer hack
* Bumped WordPress compatibility to 6.5.4
= 2.6.9 =
* Rolled back load helper changes
* Moved debug messages to action hooks
* String debugger improvements
= 2.6.8 =
* Added string debugger
* Added Zip download button instead of MO
* Added debug messages about premature domain loading
* Added warning when system translations not installed
* Compiler avoids writing empty JSON translation files
* UI promotes PO copy over msginit/xgettext routes
* Populating msginit fields when copying a PO
* Bumped WordPress compatibility to 6.5.3
= 2.6.7 =
* WordPress 6.5.0 compatible
* Support for performant translation files in PHP format
* Added block.json and theme.json extraction
* Added theme pattern files to php string extractor
* Fixed a bug where unused plural forms were counted as untranslated
* Replaced CSS .notice with .panel to mitigate nag-blocker problems
* Removed bundle debug screen (deprecated since 2.6.5)
* Workaround for absent "source" references in JED files
* Extension polyfills now restricted to Loco admin screens.
= 2.6.6 =
* Replaced open_basedir check with error capturing
= 2.6.5 =
* Added syntax checking function
* Removed deepl_api_url config. Free API detected from :fx key suffix.
* Fixed bug in relative path calculations
* Fixed API suggestions for plural forms
* Fixed bug clearing unsaved state icons
* Added total strings count to PO file tables
* Sharper flags and spinners (@x2 pixel support)
* Handling upload_tmp_dir values outside of open_basedir
* Suppressing E_WARNING when testing file is_readable
* Bundle debug screen is deprecated (moving into Setup)
* Showing System Diagnostics when debug is off
* Bumped WordPress compatibility to 6.3.1
= 2.6.4 =
* Bumped WordPress version to 6.1.1
* Dropped support for Internet Explorer
* Updated JavaScript to ECMAScript 6
* Added `loco_bundle_configured` hook
* Fixed error icon not clearing after correction
= 2.6.3 =
* Fixed bug in plural forms comparison
* Fixed bug generating author theme jsons
* Fixed errors in bundle debugger
* Extended cli type argument to filter specific bundle
* Bumped WordPress version to 6.0.3
= 2.6.2 =
* Bumped WordPress version to 6.0.0
* Better labelling of reverse-engineered plural forms
* Removed undocumented loco_locale_plurals filter; use loco_po_headers
* Added PO folder location indicator in breadcrumb
* Added syntax validation for formatted strings
= 2.6.1 =
* Bumped WordPress version to 5.9.2
* Fix for CVE-2022-0765 reported by Taurus Omar via wpscan
= 2.6.0 =
* Dropped support for WordPress < 5.2
* Code upgrades for >= PHP 5.6.20
* Bumped WordPress version to 5.9.1
* Removed Yandex API integration
* Added loco_compile_script_reference filter
* Plural-Forms retained when copying PO to same language
= 2.5.8 =
* Compatible with PHP 8.1
* Bumped WordPress version to 5.9
* Added deprecation warning prior to v2.6
= 2.5.7 =
* Fixed bug in 2.5.6 where remote APIs could not be used in batch mode
* Enforcing 10k character limit per request for Microsoft and Yandex Translators
* Style fix for revision/diff table under restore tab
= 2.5.6 =
* Added loco_api_provider_source filter
* Fixed bug loading user preferences saved in older version
* Refactored file finder to avoid recursive function calls
* Fixed bug displaying two forms for zero plural languages
* Added Lecto AI to translation API providers
* Bumped WordPress version to 5.8.3
= 2.5.5 =
* Fixed double file extension vulnerability reported by WordFence
* Better performance when scanning directories for file types
= 2.5.4 =
* Fixed vulnerability reported by Tomi Ashari via wpscan
* Added filters loco_po_headers and loco_pot_headers
* Bumped WordPress version to 5.8.1
= 2.5.3 =
* Adds option to merge JSON translations when syncing from PO
* Adds screen for editing file headers and sync options
* Fix for missing responseText in failed Ajax responses
* Fix for HTML entities returned from `number_format_i18n`
* Localized number formatting in JavaScript
* Replaced usage of date_i18n with wp_date
* Added configurable API endpoint for DeepL
* Bumped WordPress version to 5.7.2
= 2.5.2 =
* Added implied formality and loco_locale_formality filter
* Added cli fetch command (experimental)
* Bumped WordPress version to 5.7
= 2.5.1 =
* Support for new Yandex translate API
* Support for DeepL formality parameter
* Removed literal "1" and "one" instances from singular strings
* Buffering compiled JSON to support strings from multiple sources
* Added `loco_compile_single_json` filter for specifying custom JSON
* Added `loco_extracted_template` hook for adding custom strings
* Sync no longer removes the editor's current text filter
* Bumped WordPress version to 5.6.2
= 2.5.0 =
* PHP 8.0.0 compatibility
* Bumped WordPress version to 5.6.0
* Added JSON translation file generation
* Added custom JSON loading to LoadHelper
* Disabled emoji image replacement on our admin screens
= 2.4.6 =
* Fixed critical bug syncing PO directly to source code
* Added plugin setting for allowing/disallowing missing POT
* Fixed WP5.5 issue with multiple ID attributes on script tags
= 2.4.5 =
* Added WP-CLI sync and extract commands
* Fixed {locale} placeholder bug introduced in 2.4.4
* Improved handling of invalid character encodings
* Sync (msgmerge) moved to back end
* New fuzzy matching with fuzziness setting
* Bumped WordPress version to 5.5.3
= 2.4.4 =
* Added PO file upload feature
* Added download button to file info page
* Fix for extracting plurals also used as singulars
* Updating API keys no longer require editor page reload
* Catching fatal startup errors in loco.php
* Supporting max_php_size=0 to mean no size restriction
* Auto-update detection now checks new site options
* Bumped WordPress version to 5.5.1
= 2.4.3 =
* Improved fix for default syncing of msgstr fields
* Reverted accidental removal of js debug flag
* Minor fixes to API error messages
* Removed use of jQuery.browser
* Bugfix for new preferences in usermeta
= 2.4.2 =
* Added loco_file_written hook
* Improved script tampering warning
* Added keypress for selecting auto-suggestion
* Sync no longer copies msgstr fields by default
* Style tweaks for WordPress 5.5
= 2.4.1 =
* Fixed mapping of some API languages
* Added locale filter to user preferences
* Added debugging for credential form failures
* Fixed deprecated use of array_key_exists
* Added DeepL API service provider
* Improved script tampering detection
* Bumped WordPress version to 5.5
* Added "modern" skin styles
= 2.4.0 =
* Added support for third party translation APIs
* Added file references to editor source pane in code view
* Added fuzzy matching during editor Sync operation
* Style changes including rearrangement of editor buttons
* Elevated warnings when scripts are tampered with
* Removed remnants of legacy version 1.x
= 2.3.4 =
* Updated translatable strings
* Added missing template recommendation
* Alerting in debug mode when scripts are tampered with
* Fix for Hello Dolly being installed into a folder
* Removed translation column in POT edit mode
* Added setting to prevent 'translating' of POT files
* Enabled some linkable translations using wp_kses
* Bumped WordPress version to 5.4.1
= 2.3.3 =
* Fixed fatal error when class not found
= 2.3.2 =
* Removed login/email from default Last-Translator credit
* Bumped WP compatibility to 5.4
* Fixed PHP 7.4 deprecations
= 2.3.1 =
* Default POT getter now looks in "lang" directory
* Not calling deprecated magic quotes functions under PHP 7.4
* Fixed issue with conflicting page hooks
* Ajax file uploads now enabled by default
* Removed legacy option migrations from 1.x branch
* Bumped WP compatibility to 5.2.4
= 2.3.0 =
* Added experimental support for multipart uploads
* Added relocation tab for moving translation sets
* Creation of missing directories when writing new files
* Fixed duplicate file addition when iterating over symlink
* Bumped WP compatibility to 5.2.1
= 2.2.2 =
* Security fixes as per [exploit-db 46619](https://www.exploit-db.com/exploits/46619)
* Fixed old PHP version error in data files
* Bumped WP compatibility to 5.1.1
= 2.2.1 =
* Fixed bug where plural tabs not displaying RTL
* Various improvements to PO parser incl. better charset handling
* Excluding node_modules and vendor directories by default
* Transients now have maximum lifespan of 10 days, refreshed after 24h
* Symlink fix for followed theme paths detected outside theme
* Deprecated config repository lookup
* Bumped WP compatibility to 5.1
= 2.2.0 =
* Fix for empty language code when getting plural rules
* Added X-Loco-Version header to generated Gettext files
* Added sanity check for mbstring.func_overload madness
* Added "Assign template" link on missing template page
* Added JavaScript string extraction (experimental)
* Editor supports sprintf-js when javascript-format tag present
* Fix for duplicate comments when end punctuation differs
* Marking msgctxt more clearly in editor views
* Added `loco_admin_shutdown` action hook
* Bumped WP compatibility to 5.0 (beta)
= 2.1.5 =
* Updated locale data
* Minor fix to file reference resolution
* Fixed windows paths with trailing backslash
* Fixed ssh-keys toggling issue
* Rejigged buffer handling during Ajax
* Bumped WP compatibility to 4.9.8
= 2.1.4 =
* Bumped WP compatibility to 4.9.6
* Hooked in privacy policy suggestion
= 2.1.3 =
* Added loco_locale_name filter and updated locale data
* Fixed editor column sorting to update as values change
* Supporting RTL text in editor preview rows
* Minor refactor of debug mode routing check
* Minor PO parser improvements
* Bumped WP compatibility to 4.9.5
= 2.1.2 =
* Fixed undeclared property in admin hook
* Fixed incompatibility with older WordPress
* Fixed incorrect millisecond reporting in footer
* Removed locale progress column for en_US locale
* Tweaks to debugging and error logging
= 2.1.1 =
* Setting `Project-Id-Version` on new POT files
* Added source view to quick links in file tables
* Supporting only WordPress style locale codes
* Editor screen tolerates missing PO headers
* Ajax debugging improvements for issue reporting
* Added loco_parse_locale action callback
= 2.1.0 =
* Add `fs_protect` setting to avoid overwriting system files
* Fixed bug in connect dialogue where errors not redisplayed
* Minor improvements to inline notices
* Removed downgrade notice under version tab
* Fixed extraction bug where file header confused with comment
* Resolved some inconsistencies between PHP and JS utilities
* Added Restore tab with diff display
* Added `loco_settings` hook
* Prevented editor from changing PO document order
* Added default string sorting to extracted strings
* Added "Languages" section for grouping files by locale
* Fixed bug where translations loaded before user profile language set
* Added loco_locale_plurals filter for customising plural rules
* Allowing PO files to enforce their own Plural-Forms rules
* Added `loco_allow_remote` filter for debugging remote problems
* Updated plural forms from Unicode CLDR
* PHP extractor avoids repeated comments
* Bumped WP compatibility to 4.9.4
= 2.0.17 =
* Unofficial languages showing in “Installed” dropdown
* Fixed extraction bug where comment confused with file header
* Fixed issue where src attributes requested from server during HTML strip
* Added loco_admin_init hook into ajax router for consistency
* Added warning on file info page when file is managed by WordPress
* Minor help link and layout tweaks
* Bumped WP compatibility to 4.9.1
= 2.0.16 =
* File writer observes wp_is_file_mod_allowed
* Fixed progress bug in editor for locales with nplurals=1
* Made plural form categories translatable for editor UI
* Sync-from-source raises warning when files are skipped
* Added hack for extracting from .twig as per .php
* Added warning when child themes declare parent text domain
* Added option to control PO line wrapping
* Bumped WP compatibility to 4.8.2
= 2.0.15 =
* Permanently removed legacy version 1.x
* Fixed bug where editor code view was not redrawn on resize
* Fixed bug where fuzzy flag caused format flag to be ignored
* Fixed bug where autoloader responded to very long class names
* Purging WP object cache when active plugin list changes
* Added experimental source word count into POT info tab
* Bumped WP compatibility to 4.8.1
= 2.0.14 =
* Editor improvements inc. column sorting
* Added warnings that legacy version will be removed
* Added PO source view text filtering
* Added _fs_nonce for 4.7.5 compatibility
* Migrated to canonical text domain
* Removed wp class autoloading
= 2.0.13 =
* CSS conflict fixes
* Added option for UTF-8 byte order mark
* Printf highlighting observes no-php-format flag
* Fixed issue with translator role losing “read” permission
= 2.0.12 =
* Minor fix for root path configs
* Added alternative PHP extensions setting
* Bumped WP version to 4.7.3
* LoadHelper fix for core files
* Allow revoking of permissions from translator role
* Allow network admins to deny access to site admins
= 2.0.11 =
* Extra debug logging and error diagnostics
* Forcefully clear output buffers before Ajax flush
* Bumped WordPress version to 4.7
* Experimental wildcard text domain support
= 2.0.10 =
* Allows missing domain argument in plugin_locale filter
* Reverted editor changes that disabled readonly text
* Added invisibles and coding editor switches
* Added table filtering via text query
* Added Last-Translator user preference
= 2.0.9 =
* Bumped minimum WordPress version to 4.1
* Some optimisation of transient caching
* Fixed hash table settings bug
= 2.0.8 =
* Source refs fix for files in unknown subsets
* Downgrades PO formatting exceptions to PHP warnings
* Renamed function prefixes to avoid PHP 7 warnings
* Better support for php-format and no-php-format flag
* PO source and editor UI tweaks
* Localised strings and implemented in js
= 2.0.7 =
* Fixed prototype.js conflict
* More Windows file path fixes
* Added loco_current_translator filter
* Fixed false positive in extra files test
= 2.0.6 =
* PO wrapping bugfix
* Downgraded source code bugfix
* Tolerating headerless POT files
* Core bundle metadata tweaks
= 2.0.5 =
* Deferred missing tokenizer warning
* Allows editing of files in unconfigured sets
* Added maximum PHP file size for string extraction
* Display of PHP fatal errors during Ajax
= 2.0.4 =
* Reduced session failures to debug notices
* Added wp_roles support for WP < 4.3
* Fixed domain listener bugs
= 2.0.3 =
* Added support for Windows servers
* Removed incomplete config warning on bundle overview
= 2.0.2 =
* Fixed bug when absolute path used to get plugins
* Added loco_plugins_data filter
* Added theme Template Name header extraction
* Minor copy amends
= 2.0.1 =
* Added help link in settings page
* Fixed opendir warnings in legacy code
* Catching session errors during init
* Removing meta row link when plugin not found
= 2.0.0 =
* First release of completely rebuilt version 2
== Upgrade Notice ==
= 2.6.14 =
* Various improvements and bug fixes
== Keyboard shortcuts ==
The PO file editor supports the following keyboard shortcuts for faster translating:
* Done and Next: `Ctrl ↵`
* Next string: `Ctrl ↓`
* Previous string: `Ctrl ↑`
* Next untranslated: `Shift Ctrl ↓`
* Previous untranslated: `Shift Ctrl ↑`
* Copy from source text: `Ctrl B`
* Clear translation: `Ctrl K`
* Toggle Fuzzy: `Ctrl U`
* Save PO / compile MO: `Ctrl S`
* Toggle invisibles: `Shift Ctrl I`
* Suggest translation: `Ctrl J`
Mac users can use ⌘ Cmd instead of Ctrl.
home/studionolh/www/wp-content/plugins/google-site-kit/readme.txt 0000644 00000024465 15233355452 0021312 0 ustar 00 === Site Kit by Google - Analytics, Search Console, AdSense, Speed ===
Contributors: google
Requires at least: 5.2
Tested up to: 6.5
Requires PHP: 5.6
Stable tag: 1.124.0
License: Apache License 2.0
License URI: https://www.apache.org/licenses/LICENSE-2.0
Tags: google, search-console, analytics, adsense, pagespeed-insights
Site Kit is a one-stop solution for WordPress users to use everything Google has to offer to make them successful on the web.
== Description ==
Site Kit is the official WordPress plugin from Google for insights about how people find and use your site. Site Kit is the one-stop solution to deploy, manage, and get insights from critical Google tools to make the site successful on the web. It provides authoritative, up-to-date insights from multiple Google products directly on the WordPress dashboard for easy access, all for free.
= Bringing the best of Google tools to WordPress =
Site Kit includes powerful features that make using these Google products seamless and flexible:
* Easy-to-understand stats directly on your WordPress dashboard
* Official stats from multiple Google tools, all in one dashboard
* Quick setup for multiple Google tools without having to edit the source code of your site
* Metrics for your entire site and for individual posts
* Easy-to-manage, granular permissions across WordPress and different Google products
= Supported Google tools =
Site Kit shows key metrics and insights from different Google products:
* **Search Console:** Understand how Google Search discovers and displays your pages in Google Search. Track how many people saw your site in Search results, and what query they used to search for your site.
* **Analytics:** Explore how users navigate your site and track goals you've set up for your users to complete.
* **AdSense:** Keep track of how much your site is earning you.
* **PageSpeed Insights:** See how your pages perform compared to other real-world sites. Improve performance with actionable tips from PageSpeed Insights.
* **Tag Manager:** Use Site Kit to easily set up Tag Manager- no code editing required. Then, manage your tags in Tag Manager.
== Installation ==
**Note**: Make sure that your website is live. If your website isn't live yet, Site Kit can't show you any data.
However, if you have a staging environment in addition to your production site, Site Kit can display data from your production site in the staging environment. Learn how to use [Site Kit with a staging environment](https://sitekit.withgoogle.com/documentation/using-site-kit/staging/).
= Installation from within WordPress =
1. Visit **Plugins > Add New**.
2. Search for **Site Kit by Google**.
3. Install and activate the Site Kit by Google plugin.
4. Connect Site Kit to your Google account. If there are multiple WordPress admins, keep in mind that each admin must connect their own Google account in order to access the plugin.
= Manual installation =
1. Upload the entire `google-site-kit` folder to the `/wp-content/plugins/` directory.
2. Visit **Plugins**.
3. Activate the Site Kit by Google plugin.
4. Connect Site Kit to your Google account. If there are multiple WordPress admins, keep in mind that each admin must connect their own Google account in order to access the plugin.
= After activation =
1. Visit the new **Site Kit** menu.
2. Follow the instructions in the setup flow.
3. Go to the main Site Kit dashboard which already displays key metrics from Search Console.
4. Connect additional Google tools under **Site Kit > Settings**. Learn more about [which tools are right for you](https://sitekit.withgoogle.com/documentation/getting-started/connecting-services/).
== Frequently Asked Questions ==
For more information, visit the [official Site Kit website](https://sitekit.withgoogle.com/documentation/).
= Is Site Kit free? =
The Site Kit plugin is free and open source, and will remain so. Individual Google products included in Site Kit are subject to standard terms and fees (if any) for those products.
= What are the minimum requirements for Site Kit? =
In order to successfully install and use Site Kit, your site must meet the following requirements:
* WordPress version 5.2+
* PHP version 5.6+
* Modern browser – Internet Explorer is not supported
* Is publicly accessible – it isn’t in maintenance mode, accessible only via password, or otherwise blocked
* REST API is available – Site Kit must be able to communicate via REST API with Google services. To ensure that the REST API is available for your site, go to Tools > Site Health.
= Why is my dashboard showing “gathering data” and none of my service data? =
It can take a few days after connecting Site Kit to a Google service for data to begin to display in your dashboard. The “gathering data” message typically appears when you’ve recently set up a Google service (i.e. just created a new Analytics account) and/or your site is new, and data is not yet available for display.
If you are still seeing this message after a few days, feel free to get in touch with us on the [support forum](https://wordpress.org/support/plugin/google-site-kit/).
= Why aren’t any ads appearing on my site after I connected AdSense? =
If you’re new to AdSense when you connect via Site Kit, your new AdSense account and your site will need to be manually reviewed and approved for ads by the AdSense team. Ads will not display until your account and site have been approved. [Check out this guide for more information about the approval process and timeline.](https://support.google.com/adsense/answer/76228)
You can check your approval status in Site Kit by going to **Settings > Connected Services > AdSense** and clicking **Check your site status**. This link will direct you to AdSense. If you see “Ready,” your account and site have been approved and should be displaying ads. If you see “Getting ready…,” your account and site are still under review and your site will not display ads until they have been approved.
If Site Kit has successfully added the AdSense snippet to your site and your account and site have been approved, but your site is still not showing ads, [contact the AdSense Help Center for assistance](https://support.google.com/adsense/#topic=3373519).
You can find more information on how Site Kit works with AdSense in our [Managing AdSense guide](https://sitekit.withgoogle.com/documentation/using-site-kit/managing-adsense/).
= Is Site Kit GDPR compliant? =
When using Site Kit, site owners are responsible for managing notice and consent requirements – including GDPR requirements – as described in [Google’s Terms of Service](https://policies.google.com/terms).
By default, Site Kit does anonymize IP addresses upon activation of the Google Analytics module. This setting can be turned off in **Site Kit > Settings > Analytics > Anonymize IP addresses**.
There are a number of third-party plugins that allow you to block Google Analytics, Tag Manager, or AdSense from capturing data until a visitor to the site consents. Some of these work natively with Site Kit by providing plugin-specific configurations. You can find out more about these by visiting our [GDPR compliance and privacy page](https://sitekit.withgoogle.com/documentation/using-site-kit/gdpr-compliance-and-privacy/).
= Where can I get additional support? =
Please create a new topic on our [WordPress.org support forum](https://wordpress.org/support/plugin/google-site-kit/). Be sure to follow the [support forum guidelines](https://wordpress.org/support/guidelines/) when posting.
== Changelog ==
= 1.124.0 =
**Added**
* Add setup flow to Ads Module. See [#8346](https://github.com/google/site-kit-wp/issues/8346).
* Add the web tag for the Ads module. See [#8313](https://github.com/google/site-kit-wp/issues/8313).
* Add the Conversion Tracking ID field to the Ads module's Setup and Settings screens. See [#8251](https://github.com/google/site-kit-wp/issues/8251).
* Add Site Health information for the Ads module. See [#8245](https://github.com/google/site-kit-wp/issues/8245).
* Add a notification for users who have linked AdSense and Analytics accounts when data becomes available to view in their dashboard. See [#8237](https://github.com/google/site-kit-wp/issues/8237).
* Add Analytics events to AdSense + Analytics notification. See [#8213](https://github.com/google/site-kit-wp/issues/8213).
**Enhanced**
* Update Consent Mode messaging to mention the UK as well as the EEA. See [#8443](https://github.com/google/site-kit-wp/issues/8443).
* Update wording for sites with existing Analytics tags. See [#8405](https://github.com/google/site-kit-wp/issues/8405).
* Add placeholder/prefix to the Conversion Tracking ID field in the Ads module. See [#8398](https://github.com/google/site-kit-wp/issues/8398).
* Add a linked Ads account as an option to surface Consent Mode features. See [#8382](https://github.com/google/site-kit-wp/issues/8382).
* Update Analytics to use new gtag infrastructure. See [#8273](https://github.com/google/site-kit-wp/issues/8273).
* Add decoupled infrastructure for GTag. See [#8269](https://github.com/google/site-kit-wp/issues/8269).
* Add a settings toggle for Audience Segmentation. See [#8177](https://github.com/google/site-kit-wp/issues/8177).
* Introduce infrastructure for managing Audience settings. See [#8176](https://github.com/google/site-kit-wp/issues/8176).
* Add the Audience Tile in its "happy path" state as a component which is viewable in Storybook. See [#8135](https://github.com/google/site-kit-wp/issues/8135).
* Enhance Web Data Stream creation in Analytics setup and settings screens to allow using custom web data stream name. See [#6727](https://github.com/google/site-kit-wp/issues/6727).
* Improve "Retry" behavior on All Traffic Widget. See [#6406](https://github.com/google/site-kit-wp/issues/6406).
**Changed**
* Migrate the Ads Conversion ID field from the Analytics module to the Ads module. See [#8248](https://github.com/google/site-kit-wp/issues/8248).
**Fixed**
* Fix bug that caused Top Earning Pages widget to show links in shared dashboard. See [#8451](https://github.com/google/site-kit-wp/issues/8451).
* Fix bug that caused browser console error to appear when changing Tag Manager account in Tag Manager setup/settings. See [#8316](https://github.com/google/site-kit-wp/issues/8316).
[See changelog for all versions](https://raw.githubusercontent.com/google/site-kit-wp/main/changelog.txt).
home/studionolh/www/wp-content/plugins/woocommerce/readme.txt 0000644 00000103204 15233430644 0020610 0 ustar 00 === WooCommerce ===
Contributors: automattic, mikejolley, jameskoster, claudiosanches, rodrigosprimo, peterfabian1000, vedjain, jamosova, obliviousharmony, konamiman, sadowski, wpmuguru, royho, barryhughes-1
Tags: online store, ecommerce, shop, shopping cart, sell online, storefront, checkout, payments, woo, woo commerce, e-commerce, store
Requires at least: 5.8
Tested up to: 6.1
Requires PHP: 7.2
Stable tag: 7.2.4
License: GPLv3
License URI: https://www.gnu.org/licenses/gpl-3.0.html
WooCommerce is the world’s most popular open-source eCommerce solution.
== Description ==
WooCommerce is [the world’s most popular](https://trends.builtwith.com/shop) open-source eCommerce solution.
Our core platform is free, flexible, and amplified by a global community. The freedom of open-source means you retain full ownership of your store’s content and data forever.
Whether you’re launching a business, taking brick-and-mortar retail online, or developing sites for clients, use WooCommerce for a store that powerfully blends content and commerce.
- **Create beautiful, enticing storefronts** with [themes](https://woocommerce.com/product-category/themes/?utm_medium=referral&utm_source=wordpress.org&utm_campaign=wp_org_repo_listing) suited to your brand and industry.
- **Increase revenue** with an optimized [shopping cart experience](https://woocommerce.com/checkout-blocks/?utm_medium=referral&utm_source=wordpress.org&utm_campaign=wp_org_repo_listing) that converts.
- **Customize product pages in minutes** using modular [product blocks](https://docs.woocommerce.com/document/woocommerce-blocks/?utm_medium=referral&utm_source=wordpress.org&utm_campaign=wp_org_repo_listing).
- Showcase physical and digital goods, product variations, custom configurations, instant downloads, and affiliate items.
- Sell [subscriptions](https://woocommerce.com/products/woocommerce-subscriptions/?utm_medium=referral&utm_source=wordpress.org&utm_campaign=wp_org_repo_listing), [bookings](https://woocommerce.com/products/woocommerce-bookings/?utm_medium=referral&utm_source=wordpress.org&utm_campaign=wp_org_repo_listing), or [memberships](https://woocommerce.com/products/woocommerce-memberships/?utm_medium=referral&utm_source=wordpress.org&utm_campaign=wp_org_repo_listing), with our developer-vetted extensions.
- **Rise to the top of search results** by leveraging [WordPress’ SEO advantage](https://www.searchenginejournal.com/wordpress-best-cms-seo/).
- **Build on a platform that scales.** Get flexible eCommerce for [high-volume stores](https://woocommerce.com/high-volume-stores/?utm_medium=referral&utm_source=wordpress.org&utm_campaign=wp_org_repo_listing).
Built-in tools and popular integrations help you efficiently manage your business operations. Many services are free to add with a single click via the optional [Setup Wizard](https://docs.woocommerce.com/document/woocommerce-setup-wizard/?utm_medium=referral&utm_source=wordpress.org&utm_campaign=wp_org_repo_listing).
- **Choose how you want to get paid**. Conveniently manage payments from the comfort of your store with [WooCommerce Payments](https://woocommerce.com/payments/?utm_medium=referral&utm_source=wordpress.org&utm_campaign=wp_org_repo_listing) (Available in the U.S., U.K., Ireland, Australia, New Zealand, Canada, Spain, France, Germany, and Italy). Securely accept credit cards, mobile wallets, bank transfers, and cash thanks to [100+ payment gateways](https://woocommerce.com/product-category/woocommerce-extensions/payment-gateways/?utm_medium=referral&utm_source=wordpress.org&utm_campaign=wp_org_repo_listing) – including [Stripe](https://woocommerce.com/products/stripe/?utm_medium=referral&utm_source=wordpress.org&utm_campaign=wp_org_repo_listing), [PayPal](https://woocommerce.com/products/woocommerce-gateway-paypal-checkout/?utm_medium=referral&utm_source=wordpress.org&utm_campaign=wp_org_repo_listing), and [Square](https://woocommerce.com/products/square/?utm_medium=referral&utm_source=wordpress.org&utm_campaign=wp_org_repo_listing).
- **Configure your shipping options**. Print USPS labels right from your dashboard and even schedule a pickup with [WooCommerce Shipping](https://woocommerce.com/products/shipping/?utm_medium=referral&utm_source=wordpress.org&utm_campaign=wp_org_repo_listing) (U.S.-only). Connect with [well-known carriers](https://woocommerce.com/product-category/woocommerce-extensions/shipping-methods/?utm_medium=referral&utm_source=wordpress.org&utm_campaign=wp_org_repo_listing) such as UPS and FedEx – plus a wide variety of delivery, inventory, and fulfillment solutions for your locale.
- **Simplify sales tax**. Add [WooCommerce Tax](https://woocommerce.com/products/tax/?utm_medium=referral&utm_source=wordpress.org&utm_campaign=wp_org_repo_listing) or [similar integrated services](https://woocommerce.com/product-category/woocommerce-extensions/tax?utm_medium=referral&utm_source=wordpress.org&utm_campaign=wp_org_repo_listing) to make automated calculations a reality.
= Grow your business, add features, and monitor your store on the go =
WooCommerce means business. Keep tabs on the performance metrics most important to you with [WooCommerce Admin](https://wordpress.org/plugins/woocommerce-admin/?utm_medium=referral&utm_source=wordpress.org&utm_campaign=wp_org_repo_listing) – a powerful, customizable central dashboard for your store.
Expand your audience across marketing and social channels with [Google Ads](https://woocommerce.com/products/google-ads/?utm_medium=referral&utm_source=wordpress.org&utm_campaign=wp_org_repo_listing), [HubSpot](https://woocommerce.com/products/hubspot-for-woocommerce/?utm_medium=referral&utm_source=wordpress.org&utm_campaign=wp_org_repo_listing), [Mailchimp](https://woocommerce.com/products/mailchimp-for-woocommerce/?utm_medium=referral&utm_source=wordpress.org&utm_campaign=wp_org_repo_listing), and [Facebook](https://woocommerce.com/products/facebook/?utm_medium=referral&utm_source=wordpress.org&utm_campaign=wp_org_repo_listing) integrations. You can always check out the in-dashboard [Marketing Hub](https://docs.woocommerce.com/document/marketing-hub/?utm_medium=referral&utm_source=wordpress.org&utm_campaign=wp_org_repo_listing) for fresh ideas and tips to help you succeed.
Enhance store functionality with hundreds of free and paid extensions from the [official WooCommerce Marketplace](https://woocommerce.com/products/?utm_medium=referral&utm_source=wordpress.org&utm_campaign=wp_org_repo_listing). Our developers [vet each new extension](https://docs.woocommerce.com/document/marketplace-overview/#section-6?utm_medium=referral&utm_source=wordpress.org&utm_campaign=wp_org_repo_listing) and regularly review existing extensions to maintain Marketplace quality standards. We are actively [looking for products that help store builders create successful stores](https://docs.woocommerce.com/document/marketplace-overview/#section-2?utm_medium=referral&utm_source=wordpress.org&utm_campaign=wp_org_repo_listing).
Manage your store from anywhere with the free WooCommerce [mobile app](https://woocommerce.com/mobile/?utm_medium=referral&utm_source=wordpress.org&utm_campaign=wp_org_repo_listing) (Android and iOS). Spoiler alert: Keep an ear out for the slightly addictive "cha-ching" notification sound each time you make a new sale!
= Own and control your store data – forever =
With WooCommerce, your data belongs to you. Always.
If you opt to share [usage data](https://woocommerce.com/usage-tracking/?utm_medium=referral&utm_source=wordpress.org&utm_campaign=wp_org_repo_listing) with us, you can feel confident knowing that it’s anonymized and kept secure. Choose to opt-out at any time without impacting your store.
Unlike hosted eCommerce solutions, WooCommerce store data is future-proof; you’re free to export all your content and take your site to any platform you choose. No restrictions.
= Why developers choose (and love) WooCommerce =
Developers can use WooCommerce to create, customize, and scale a store to meet a client’s exact specifications, making enhancements through extensions or custom solutions.
- Leverage [hooks and filters](https://docs.woocommerce.com/document/introduction-to-hooks-actions-and-filters/?utm_medium=referral&utm_source=wordpress.org&utm_campaign=wp_org_repo_listing) to modify or create functionality.
- Integrate virtually any service using a robust [REST API](https://docs.woocommerce.com/document/woocommerce-rest-api/?utm_medium=referral&utm_source=wordpress.org&utm_campaign=wp_org_repo_listing) and webhooks.
- Design and build custom content blocks with React.
- [Inspect and modify](https://docs.woocommerce.com/documentation/plugins/woocommerce/woocommerce-codex/extending/?utm_medium=referral&utm_source=wordpress.org&utm_campaign=wp_org_repo_listing) any aspect of the core plugin code.
- Speed up development with a lightning-fast [CLI](https://woocommerce.github.io/code-reference/classes/wc-cli-rest-command.html?utm_medium=referral&utm_source=wordpress.org&utm_campaign=wp_org_repo_listing).
The core platform is tested rigorously and often, supported by a dedicated development team working across time zones. Comprehensive documentation is updated with each release, empowering you to build exactly the store required.
= Be part of our growing international community =
WooCommerce has a large, passionate community dedicated to helping merchants succeed – and it’s growing fast.
There are [WooCommerce Meetups](https://woocommerce.com/meetups/?utm_medium=referral&utm_source=wordpress.org&utm_campaign=wp_org_repo_listing) in locations around the world that you can attend for free and even get involved in running. These events are a great way to learn from others, share your expertise, and connect with like-minded folks.
WooCommerce also has a regular presence at WordCamps across the globe – we’d love to meet you.
= Contribute and translate =
WooCommerce is developed and supported by Automattic, the creators of WordPress.com and Jetpack. We also have hundreds of independent contributors, and there’s always room for more. Head to the [WooCommerce GitHub Repository](https://github.com/woocommerce/woocommerce?utm_medium=referral&utm_source=wordpress.org&utm_campaign=wp_org_repo_listing) to find out how you can pitch in.
WooCommerce is translated into multiple languages, including Danish, Ukrainian, and Persian. Help localize WooCommerce even further by adding your locale – visit [translate.wordpress.org](https://translate.wordpress.org/projects/wp-plugins/woocommerce/?utm_medium=referral&utm_source=wordpress.org&utm_campaign=wp_org_repo_listing).
== Frequently Asked Questions ==
= Where can I find WooCommerce documentation and user guides? =
For help setting up and configuring WooCommerce, please refer to [Getting Started](https://docs.woocommerce.com/documentation/plugins/woocommerce/getting-started/?utm_medium=referral&utm_source=wordpress.org&utm_campaign=wp_org_repo_listing) and the [New WooCommerce Store Owner Guide](https://woocommerce.com/guides/new-store/?utm_medium=referral&utm_source=wordpress.org&utm_campaign=wp_org_repo_listing).
For extending or theming WooCommerce, see our [codex](https://docs.woocommerce.com/documentation/plugins/woocommerce/woocommerce-codex/?utm_medium=referral&utm_source=wordpress.org&utm_campaign=wp_org_repo_listing), as well as the [Plugin Developer Handbook](https://docs.woocommerce.com/document/create-a-plugin/?utm_medium=referral&utm_source=wordpress.org&utm_campaign=wp_org_repo_listing).
= Where can I get help or talk to other users about WooCommerce Core? =
If you get stuck, you can ask for help in the [WooCommerce Support Forum](https://wordpress.org/support/plugin/woocommerce/?utm_medium=referral&utm_source=wordpress.org&utm_campaign=wp_org_repo_listing) by following [these guidelines](https://wordpress.org/support/topic/guide-to-the-woocommerce-forum/?utm_medium=referral&utm_source=wordpress.org&utm_campaign=wp_org_repo_listing), reach out via the [WooCommerce Community Slack](https://woocommerce.com/community-slack/?utm_medium=referral&utm_source=wordpress.org&utm_campaign=wp_org_repo_listing), or post in the [WooCommerce Community group](https://www.facebook.com/groups/advanced.woocommerce?utm_medium=referral&utm_source=wordpress.org&utm_campaign=wp_org_repo_listing) on Facebook.
= Where can I get help for extensions I have purchased on WooCommerce.com? =
For assistance with paid extensions from the WooCommerce.com Marketplace: first, review our [self-service troubleshooting guide](https://docs.woocommerce.com/document/woocommerce-self-service-guide/). If the problem persists, kindly log a support ticket via [our helpdesk](https://woocommerce.com/my-account/create-a-ticket/). Our dedicated Happiness Engineers aim to respond within 24 hours.
= I’m having trouble logging in to WooCommerce.com – what now? =
First, troubleshoot common login issues using this helpful [step-by-step guide](https://docs.woocommerce.com/document/log-into-woocommerce-com-with-wordpress-com/?utm_medium=referral&utm_source=wordpress.org&utm_campaign=wp_org_repo_listing). Still not working? [Get in touch with us](https://woocommerce.com/contact-us/?utm_medium=referral&utm_source=wordpress.org&utm_campaign=wp_org_repo_listing).
= Will WooCommerce work with my theme? =
Yes! WooCommerce will work with any theme but may require some additional styling. If you’re looking for a theme featuring deep WooCommerce integration, we recommend [Storefront](https://woocommerce.com/storefront/?utm_medium=referral&utm_source=wordpress.org&utm_campaign=wp_org_repo_listing).
= How do I update WooCommerce? =
We have a detailed guide on [How To Update WooCommerce](https://docs.woocommerce.com/document/how-to-update-woocommerce/?utm_medium=referral&utm_source=wordpress.org&utm_campaign=wp_org_repo_listing).
= My site broke – what do I do? =
Start by diagnosing the issue using our helpful [troubleshooting guide](https://docs.woocommerce.com/documentation/get-help/troubleshooting-get-help/?utm_medium=referral&utm_source=wordpress.org&utm_campaign=wp_org_repo_listing).
If you noticed the error after updating a theme or plugin, there might be compatibility issues between it and WooCommerce. If the issue appeared after updating WooCommerce, there could be a conflict between WooCommerce and an outdated theme or plugin.
In both instances, we recommend running a conflict test using [Health Check](https://docs.woocommerce.com/document/troubleshooting-using-health-check/?utm_medium=referral&utm_source=wordpress.org&utm_campaign=wp_org_repo_listing) (which allows you to disable themes and plugins without affecting your visitors) or troubleshooting the issue using a [staging site](https://docs.woocommerce.com/document/how-to-test-for-conflicts/#section-3?utm_medium=referral&utm_source=wordpress.org&utm_campaign=wp_org_repo_listing).
= Where can I report bugs? =
Report bugs on the [WooCommerce GitHub repository](https://github.com/woocommerce/woocommerce/issues?utm_medium=referral&utm_source=wordpress.org&utm_campaign=wp_org_repo_listing). You can also notify us via our support forum – be sure to search the forums to confirm that the error has not already been reported.
= Where can I request new features, themes, and extensions? =
Request new features and extensions and vote on existing suggestions on our official [ideas board](https://ideas.woocommerce.com/forums/133476-woocommerce?utm_medium=referral&utm_source=wordpress.org&utm_campaign=wp_org_repo_listing). Our Product teams regularly review requests and consider them valuable for product planning.
= WooCommerce is awesome! Can I contribute? =
Yes, you can! Join in on our [GitHub repository](https://github.com/woocommerce/woocommerce/?utm_medium=referral&utm_source=wordpress.org&utm_campaign=wp_org_repo_listing) and follow the [development blog](https://woocommerce.wordpress.com/?utm_medium=referral&utm_source=wordpress.org&utm_campaign=wp_org_repo_listing) to stay up-to-date with everything happening in the project.
= Where can I find REST API documentation? =
Extensive [WooCommerce REST API Documentation](https://woocommerce.github.io/woocommerce-rest-api-docs/?utm_medium=referral&utm_source=wordpress.org&utm_campaign=wp_org_repo_listing) is available on GitHub.
= My question is not listed here. Where can I find more answers? =
Check out [Frequently Asked Questions](https://docs.woocommerce.com/document/frequently-asked-questions/?utm_medium=referral&utm_source=wordpress.org&utm_campaign=wp_org_repo_listing) for more.
== Installation ==
= Minimum Requirements =
* PHP 7.2 or greater is recommended
* MySQL 5.6 or greater is recommended
Visit the [WooCommerce server requirements documentation](https://docs.woocommerce.com/document/server-requirements/?utm_source=wp%20org%20repo%20listing&utm_content=3.6) for a detailed list of server requirements.
= Automatic installation =
Automatic installation is the easiest option -- WordPress will handle the file transfer, and you won’t need to leave your web browser. To do an automatic install of WooCommerce, log in to your WordPress dashboard, navigate to the Plugins menu, and click “Add New.”
In the search field type “WooCommerce,” then click “Search Plugins.” Once you’ve found us, you can view details about it such as the point release, rating, and description. Most importantly of course, you can install it by! Click “Install Now,” and WordPress will take it from there.
= Manual installation =
Manual installation method requires downloading the WooCommerce plugin and uploading it to your web server via your favorite FTP application. The WordPress codex contains [instructions on how to do this here](https://wordpress.org/support/article/managing-plugins/#manual-plugin-installation).
= Updating =
Automatic updates should work smoothly, but we still recommend you back up your site.
If you encounter issues with the shop/category pages after an update, flush the permalinks by going to WordPress > Settings > Permalinks and hitting “Save.” That should return things to normal.
= Sample data =
WooCommerce comes with some sample data you can use to see how products look; import sample_products.xml via the [WordPress importer](https://wordpress.org/plugins/wordpress-importer/). You can also use the core [CSV importer](https://docs.woocommerce.com/document/product-csv-importer-exporter/?utm_source=wp%20org%20repo%20listing&utm_content=3.6) or our [CSV Import Suite extension](https://woocommerce.com/products/product-csv-import-suite/?utm_source=wp%20org%20repo%20listing&utm_content=3.6) to import sample_products.csv
== Changelog ==
= 7.2.4 2026-02-24 =
* Security - Fixed path validation in Store API batch endpoint
= 7.2.3 2023-1-9
**WooCommerce Blocks 8.9.4**
* Fix - fatal error in WordPress 5.8 when creating a post or page. #7496
* Fix - hangs in the block editor with WordPress 5.8. #8095
* Fix - Filter by Attribute block crashing in the editor of WordPress 5.8. #8101
= 7.2.1 2022-12-16 =
**WooCommerce**
* Update - Include taxes migration in MigrationHelper::migrate_country_states [#35967](https://github.com/woocommerce/woocommerce/pull/35967)
= 7.2.0 2022-12-14 =
**WooCommerce**
* Fix - Corrects a hard-coded reference to the WP post meta table within the HPOS Migration Helper, that would fail on some sites. [#36100](https://github.com/woocommerce/woocommerce/pull/36100)
* Fix - Drop usage of WP 5.9 function in the product quantity selector template. [#36054](https://github.com/woocommerce/woocommerce/pull/36054)
* Fix - Add a data migration for changed New Zealand and Ukraine state codes [#35669](https://github.com/woocommerce/woocommerce/pull/35669)
* Fix - Fix error in onboarding wizard when plugin is activated but includes unexpected output. [#35866](https://github.com/woocommerce/woocommerce/pull/35866)
* Fix - Increased margin so that overflow modal content doesn't clip header [#35780](https://github.com/woocommerce/woocommerce/pull/35780)
* Fix - Added default additional content to emails via filter woocommerce_email_additional_content_. [#35195](https://github.com/woocommerce/woocommerce/pull/35195)
* Fix - Corrects the currency symbol for Libyan Dinar (LYD). [#35395](https://github.com/woocommerce/woocommerce/pull/35395)
* Fix - Fix 'Invalid payment method' error upon double click on Delete button of Payment methods table [#30884](https://github.com/woocommerce/woocommerce/pull/30884)
* Fix - Fix bg color that was not covering the full page [#35476](https://github.com/woocommerce/woocommerce/pull/35476)
* Fix - Fix class name for class FirstDownlaodableProduct [#35383](https://github.com/woocommerce/woocommerce/pull/35383)
* Fix - Fixed "Unsupported operand types" error. [#34327](https://github.com/woocommerce/woocommerce/pull/34327)
* Fix - Fix inconsistent return type of class WC_Shipping_Rate->get_shipping_tax() [#35453](https://github.com/woocommerce/woocommerce/pull/35453)
* Fix - Fix invalid wcadmin_install_plugin_error event props [#35411](https://github.com/woocommerce/woocommerce/pull/35411)
* Fix - Fix JS error when the business step is accessed directly via URL without completing the previous steps [#35045](https://github.com/woocommerce/woocommerce/pull/35045)
* Fix - fix popper position for in-app marketplace tour [#35278](https://github.com/woocommerce/woocommerce/pull/35278)
* Fix - Fix WooCommerce icons not loading in the site editor. [#35532](https://github.com/woocommerce/woocommerce/pull/35532)
* Fix - FQCN for WP_Error in PHPDoc. [#35305](https://github.com/woocommerce/woocommerce/pull/35305)
* Fix - Make the user search metabox for orders show the same information for the loaded user and for search results [#35244](https://github.com/woocommerce/woocommerce/pull/35244)
* Fix - Override filter_meta_data method, since it should be a no-op anyway. [#35192](https://github.com/woocommerce/woocommerce/pull/35192)
* Fix - Remove the direct dependency on `$_POST` when validating checkout data. [#35329](https://github.com/woocommerce/woocommerce/pull/35329)
* Fix - Revert change that auto collapses the product short description field. [#35213](https://github.com/woocommerce/woocommerce/pull/35213)
* Fix - Skip flaky settings API test [#35338](https://github.com/woocommerce/woocommerce/pull/35338)
* Fix - Update Playwright from 1.26.1 to 1.27.1 [#35106](https://github.com/woocommerce/woocommerce/pull/35106)
* Fix - When the minimum and maximum quantity are identical, render the quantity input and set it to disabled. [#34282](https://github.com/woocommerce/woocommerce/pull/34282)
* Add - Add "Empty Trash" functionality to HPOS list table. [#35489](https://github.com/woocommerce/woocommerce/pull/35489)
* Add - Add add attribute modal to the attribute field in the new product management MVP [#34999](https://github.com/woocommerce/woocommerce/pull/34999)
* Add - Add add new option for the category dropdown within the product MVP [#35132](https://github.com/woocommerce/woocommerce/pull/35132)
* Add - Add contextual product more menu [#35447](https://github.com/woocommerce/woocommerce/pull/35447)
* Add - Added a guided tour for WooCommerce Extensions page [#35278](https://github.com/woocommerce/woocommerce/pull/35278)
* Add - Added npm script for Playwright API Core Tests [#35283](https://github.com/woocommerce/woocommerce/pull/35283)
* Add - Added states for Senegal. [#35199](https://github.com/woocommerce/woocommerce/pull/35199)
* Add - Added the "Tour the WooCommerce Marketplace" task to onboarding tasks list [#35278](https://github.com/woocommerce/woocommerce/pull/35278)
* Add - Added Ukrainian subdivisions. [#35493](https://github.com/woocommerce/woocommerce/pull/35493)
* Add - Adding attribute edit modal for new product screen. [#35269](https://github.com/woocommerce/woocommerce/pull/35269)
* Add - Add manual stock management section to product management experience [#35047](https://github.com/woocommerce/woocommerce/pull/35047)
* Add - Add new Category dropdown field to the new Product Management screen. [#34400](https://github.com/woocommerce/woocommerce/pull/34400)
* Add - add new track events for in-app marketplace tour [#35278](https://github.com/woocommerce/woocommerce/pull/35278)
* Add - Add option and modal to create new attribute terms within MVP attribute modal. [#35131](https://github.com/woocommerce/woocommerce/pull/35131)
* Add - Add placeholder to description field [#35286](https://github.com/woocommerce/woocommerce/pull/35286)
* Add - Add playwright api-core-tests for data crud operations [#35347](https://github.com/woocommerce/woocommerce/pull/35347)
* Add - Add playwright api-core-tests for payment gateways crud operations [#35279](https://github.com/woocommerce/woocommerce/pull/35279)
* Add - Add playwright api-core-tests for product reviews crud operations [#35163](https://github.com/woocommerce/woocommerce/pull/35163)
* Add - Add playwright api-core-tests for product variations crud operations [#35355](https://github.com/woocommerce/woocommerce/pull/35355)
* Add - Add playwright api-core-tests for reports crud operations [#35388](https://github.com/woocommerce/woocommerce/pull/35388)
* Add - Add playwright api-core-tests for settingss crud operations [#35253](https://github.com/woocommerce/woocommerce/pull/35253)
* Add - Add playwright api-core-tests for system status crud operations [#35254](https://github.com/woocommerce/woocommerce/pull/35254)
* Add - Add playwright api-core-tests for webhooks crud operations [#35292](https://github.com/woocommerce/woocommerce/pull/35292)
* Add - Add Product description title in old editor for clarification. [#35154](https://github.com/woocommerce/woocommerce/pull/35154)
* Add - Add product inventory advanced section [#35164](https://github.com/woocommerce/woocommerce/pull/35164)
* Add - Add product management description to new product management experience [#34961](https://github.com/woocommerce/woocommerce/pull/34961)
* Add - Add product state badge to product form header [#35460](https://github.com/woocommerce/woocommerce/pull/35460)
* Add - Add product title to header when available [#35431](https://github.com/woocommerce/woocommerce/pull/35431)
* Add - Add scheduled sale support to new product edit page. [#34538](https://github.com/woocommerce/woocommerce/pull/34538)
* Add - Adds new Inbox Note to provide more information about WooCommerce Payments to users who dismiss the WCPay promo but say that they want more information in the exit survey. [#35581](https://github.com/woocommerce/woocommerce/pull/35581)
* Add - Add summary to new product page experience [#35201](https://github.com/woocommerce/woocommerce/pull/35201)
* Add - Include order datastore information in status report. [#35487](https://github.com/woocommerce/woocommerce/pull/35487)
* Add - Make it possible to add custom bulk action handling to the admin order list screen (when HPOS is enabled). [#35442](https://github.com/woocommerce/woocommerce/pull/35442)
* Add - Set In-App Marketplace Tour as completed on tour close [#35278](https://github.com/woocommerce/woocommerce/pull/35278)
* Add - When custom order tables are not authoritative, admin UI requests will be redirected to the matching legacy order screen as appropriate. [#35463](https://github.com/woocommerce/woocommerce/pull/35463)
* Update - Woo Blocks 8.9.2 [#35805](https://github.com/woocommerce/woocommerce/pull/35805)
* Update - Comment: Update WooCommerce Blocks to 8.7.2 [#35101](https://github.com/woocommerce/woocommerce/pull/35101)
* Update - Comment: Update WooCommerce Blocks to 8.7.3 [#35219](https://github.com/woocommerce/woocommerce/pull/35219)
* Update - Comment: Update WooCommerce Blocks to 8.9.1 [#35564](https://github.com/woocommerce/woocommerce/pull/35564)
* Update - CustomOrdersTableController::custom_orders_table_usage_is_enabled returns now false if the HPOS feature is disabled [#35597](https://github.com/woocommerce/woocommerce/pull/35597)
* Update - Disable inventory stock toggle when product stock management is disabled [#35059](https://github.com/woocommerce/woocommerce/pull/35059)
* Update - Improve the loading time of WooCommerce setup widget for large databases [#35334](https://github.com/woocommerce/woocommerce/pull/35334)
* Update - Permit showing a guided tour for WooCommerce Extensions page on desktops only [#35278](https://github.com/woocommerce/woocommerce/pull/35278)
* Update - Remove adding and managing products note [#35319](https://github.com/woocommerce/woocommerce/pull/35319)
* Update - Remove first downloadable product note [#35318](https://github.com/woocommerce/woocommerce/pull/35318)
* Update - Remove InsightFirstProductAndPayment note [#35309](https://github.com/woocommerce/woocommerce/pull/35309)
* Update - Remove insight on first sale note [#35341](https://github.com/woocommerce/woocommerce/pull/35341)
* Update - Remove manage store activity note [#35320](https://github.com/woocommerce/woocommerce/pull/35320)
* Update - Remove Popover.Slot usage and make use of exported SelectControlMenuSlot. [#35353](https://github.com/woocommerce/woocommerce/pull/35353)
* Update - Remove update store details note [#35322](https://github.com/woocommerce/woocommerce/pull/35322)
* Update - Update Array checks in playwright api-core-tests as some of the existing tests would produce false positives [#35462](https://github.com/woocommerce/woocommerce/pull/35462)
* Update - Update playwright api-core-tests for shipping crud operations [#35332](https://github.com/woocommerce/woocommerce/pull/35332)
* Update - Update playwright api-core-tests to execute for both base test environment and base JN environment with WooCommerce [#35522](https://github.com/woocommerce/woocommerce/pull/35522)
* Update - Update products task list UI [#35611](https://github.com/woocommerce/woocommerce/pull/35611)
* Update - Update ShippingLabelBanner add_meta_box action to only trigger on shop_order pages and remove deprecated function call. [#35212](https://github.com/woocommerce/woocommerce/pull/35212)
* Update - Update WooCommerce Blocks to 8.9.0 [#35521](https://github.com/woocommerce/woocommerce/pull/35521)
* Dev - Add variation price shortcut [#34948](https://github.com/woocommerce/woocommerce/pull/34948)
* Dev - Cleanup and deprecate unused Task properties and methods [#35450](https://github.com/woocommerce/woocommerce/pull/35450)
* Dev - Enable Playwright tests on Daily Smoke Test workflow and upload its Allure reports to S3 bucket. [#35114](https://github.com/woocommerce/woocommerce/pull/35114)
* Dev - Move product action buttons to header menu [#35214](https://github.com/woocommerce/woocommerce/pull/35214)
* Dev - Revert the changes introduced in PR #35282 [#35337](https://github.com/woocommerce/woocommerce/pull/35337)
* Dev - Show a dismissible snackbar if the server responds with an error [#35160](https://github.com/woocommerce/woocommerce/pull/35160)
* Dev - Update api-core-tests readme for consistency with new command and updates to other commands too. [#35303](https://github.com/woocommerce/woocommerce/pull/35303)
* Dev - Updated the COT plugin URL now that this feature can be enabled in a different way. [#34990](https://github.com/woocommerce/woocommerce/pull/34990)
* Dev - Update the list of tags for WC plugin on .org [#35573](https://github.com/woocommerce/woocommerce/pull/35573)
* Dev - Update unit test install script for db sockets. [#35152](https://github.com/woocommerce/woocommerce/pull/35152)
* Dev - Use plugins/woocommerce/tests/e2e-pw folder for saving test outputs [#35206](https://github.com/woocommerce/woocommerce/pull/35206)
* Dev - Uses the globa-setup.js to setup permalinks structure [#35282](https://github.com/woocommerce/woocommerce/pull/35282)
* Tweak - Move HPOS hook woocommerce_before_delete_order before deleting order. [#35517](https://github.com/woocommerce/woocommerce/pull/35517)
* Tweak - Adds new filter `woocommerce_get_customer_payment_tokens_limit` to set limit on number of payment methods fetched within the My Account page. [#29850](https://github.com/woocommerce/woocommerce/pull/29850)
* Tweak - Add source parameter for calls to the subscriptions endpoint on WooCommerce.com [#35051](https://github.com/woocommerce/woocommerce/pull/35051)
* Tweak - Fix @version header in form-login.php [#35479](https://github.com/woocommerce/woocommerce/pull/35479)
* Tweak - Move HPOS hook woocommerce_before_delete_order before deleting order. [#35517](https://github.com/woocommerce/woocommerce/pull/35517)
* Tweak - typo fix [#35111](https://github.com/woocommerce/woocommerce/pull/35111)
* Tweak - Unwrap product page input props and pass via getInputProps [#35034](https://github.com/woocommerce/woocommerce/pull/35034)
* Tweak - Updates the currency symbol used for the Azerbaijani manat. [#30605](https://github.com/woocommerce/woocommerce/pull/30605)
* Tweak - Use new Tooltip component instead of EnrichedLabel [#35024](https://github.com/woocommerce/woocommerce/pull/35024)
* Enhancement - Change the product info section title to Product Details [#35255](https://github.com/woocommerce/woocommerce/pull/35255)
* Enhancement - Fix the display of letter descenders in the shipping class dropdown menu [#35258](https://github.com/woocommerce/woocommerce/pull/35258)
* Enhancement - Improve the communication around required and optional [#35266](https://github.com/woocommerce/woocommerce/pull/35266)
* Enhancement - Increase the spacing between the shipping box illustration and the dimensions fields [#35259](https://github.com/woocommerce/woocommerce/pull/35259)
* Enhancement - Optimize query usage in the Onboarding tasks [#35065](https://github.com/woocommerce/woocommerce/pull/35065)
* Enhancement - Remove some placeholder values [#35267](https://github.com/woocommerce/woocommerce/pull/35267)
* Enhancement - Replace the trash can icon in the attribute list [#35133](https://github.com/woocommerce/woocommerce/pull/35133)
* Enhancement - Select the current new added shipping class [#35123](https://github.com/woocommerce/woocommerce/pull/35123)
* Enhancement - Tweaks the PR template for GitHub pull requests [#34597](https://github.com/woocommerce/woocommerce/pull/34597)
[See changelog for all versions](https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/changelog.txt).
home/studionolh/www/wp-content/plugins/duplicate-page/readme.txt 0000644 00000014351 15233441014 0021152 0 ustar 00 === Duplicate Page ===
Contributors: mndpsingh287
Tags: Page Duplicate, Post duplicate, duplicate custom posts, duplicate page, duplicate post, duplicate ,custom posts, post, page, duplicate this, duplicate, content duplicate, duplicate content, data duplicate, duplicate data, copy page, clone page,wordpress page duplicate, wordpress post duplicate, Copy post, wordpress page duplicator, wordpress post duplicator, Cloner, duplicate post
Requires at least: 3.4
Tested up to: 6.9.4
Stable tag: 4.5.9
License: GPLv2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Duplicate Posts, Pages and Custom Posts easily using single click
== Description ==
Duplicate Posts, Pages and Custom Posts easily using single click. You can duplicate your pages, posts and custom post by just one click and it will save as your selected options (draft, private, public, pending).
= Key Features in Duplicate Page Pro Editions =
* **User Roles:** Allow User Roles To access Duplicate Page.
* **Post Types:** Filter to show Duplicate Page link in post types.
* **Clone Link Location:** Option where to show clone link.
* **Status:** Option to select Duplicate Posts Status.
* **Redirection:** Option to Redirect after click on clone link..
* **Clone Link Title:** Option to change Duplicate Post Link Title.
* **Post Prefix:** Option to add Post Prefix.
* **Post Suffix:** Option to add Post Suffix.
* **Editor**: And Many More Filters and Features.
> <strong>[Buy Pro Version](https://duplicatepro.com/pro/?utm_source=Wordpress.org&utm_medium=Website&utm_campaign=Duplicate%20Page%20Pro)</strong> with various features & support.
> <strong>[Contact us](https://duplicatepro.com/contact/?utm_source=Wordpress.org&utm_medium=Website&utm_campaign=Duplicate%20Page%20Pro)</strong> for Support Only Pro Version Users.
**[Upgrade to Pro Version](https://duplicatepro.com/pro/?utm_source=Wordpress.org&utm_medium=Website&utm_campaign=Duplicate%20Page%20Pro)**
https://www.youtube.com/watch?v=Fj8BHxvebXs&feature=youtu.be
== Installation ==
1. Upload the `duplicate-page` folder to the directory `/wp-content/plugins/`.
2. Activate the plugin using the 'Plugins' menu in WordPress.
== Frequently asked questions ==
## How to use
1. First Activate Plugin.
2. Go Select to Duplicate Page settings Menu from Settings Tab and savings settings.
1. Then Create New Post/Page or Use old.
2. After click on duplicate this link, then duplicate post/ page will be created and saved as draft,publish,pending,private depending upon settings.
== Screenshots ==
1. Activate Screen
2. Duplicate Page Settings Screen
3. Select Option from Settings Page.
4. Click on Duplicate This.
5. Duplicate Post / Page will Appear.
== Changelog ==
= 4.5.9 (8th May, 2026) =
* Security Fix: Replaced role-based check (contributor) with capability-based check (edit_posts) per WordPress coding standards.
* Bug Fix: Resolved Elementor and page builder layout not preserved after duplication.
* Bug Fix: Switched from add_post_meta() to update_post_meta() to prevent duplicate meta entries on duplicated posts.
* Bug Fix: Added wp_slash() to meta values before saving to prevent double-unslashing which corrupted page builder JSON data.
= 4.5.8 (21st Apr, 2026) =
* Security fixes
= 4.5.7 (2nd March, 2026) =
* Compatible with WordPress 6.9.4
= 4.5.6 (16th Oct, 2025) =
* Compatible with WordPress 6.8.3
= 4.5.5 (9th June, 2025) =
* Compatible with WordPress 6.8.1
= 4.5.4 (29th July, 2024) =
* Compatible with WordPress 6.6.1
= 4.5.3(11th Sept, 2023)
* Compatible with wordpress 6.3.1
= 4.5.2(4th May, 2023)
* Compatible with wordpress 6.2
= 4.5.1(8th Feb, 2023)
* Fixes compatibility issues with event calendar plugin.
* Minor bug fixes
= 4.5(14th Dec, 2022)
* Checked compatibility with wordpress v6.1.1
* Fixes elementor sections compatibility issue
= 4.4.9(15th Jul, 2022)
* Checked compatibility with wordpress v6.0.1
= 4.4.8(27th Jan, 2022)
* Checked compatibility with wordpress v5.9
= 4.4.7(16th Dec, 2021)
* Added editor role check
= 4.4.6(7th Dec, 2021)
* Fixed security issues.
= 4.4.5(29th Sep, 2021)
* Fixed the issue for content HTML displaying in the sidebar.
= 4.4.4(16th Sep, 2021)
* Fixed sanitization Issues as per wordpress standards.
= 4.4.3(8th Sep, 2021)
* Updated code sanitization process for secure data submission
= 4.4.2(6th Sep, 2021)
* Added sanitization as per wordpress standards.
= 4.4.1(27th July, 2021) =
* Checked compatibility with wordpress v5.8
* Fixed php warnings
= 4.4(18th Mar, 2021) =
* Tested upto wordpress v5.7
= 4.3(28th Aug, 2020) =
* Tested with wordpress v5.5
= 4.2(26th March, 2020) =
* Fixed Translations string issue
= 4.1(20th Feb, 2020) =
* Fixed Translations issue
= 4.0(20th Sep, 2019) =
* Fixed slug duplication issue
= 3.9 (6th Aug, 2019) =
* Fixed some compatibility issues
= 3.8 (18th July, 2019) =
* Fixed compatibility issues with GT3 editor
= 3.7 (18th July, 2019) =
* Fixed compatibility issues with other editors
= 3.6 (16th July, 2019) =
* Security fixes addressed by wordpress
= 3.5 (2nd Apr, 2019) =
* Gutenberg and advanced custom fields compatibility
= 3.4 (1st Apr, 2019) =
* Security issues fixes addressed by Securi
= 3.3 (14th March, 2019) =
* Compatible with WordPress 5.1.1
= 3.2 (25th Dec, 2018) =
* Gutenberg Compatible
= 3.1 (5th Dec, 2018) =
* removed nag
= 3.0 (3rd Dec, 2018) =
* German Formal lang added
= 2.9 (16th Nov, 2018) =
* Minor bug fixes
= 2.8 (20th Oct, 2018) =
* Compatible with php 7.3 and wordpress 5.0
= 2.7 (28th July, 2018) =
* removed useless adsense code
= 2.6 (24th March, 2018) =
* Added signup popup and minor fixes.
= 2.5 (5th Feb, 2018) =
* Translations issue resolve.
= 2.4 (29th Nov, 2017) =
* Duplicate Page appends original post name issue fixed.
= 2.3 (27st april, 2017) =
* Minor Fixes
= 2.2 (28th Jan, 2017) =
* Strings Translations
= 2.1 (25th Aug, 2016) =
* New Text field added in settings page for duplicate post title suffix to remove confusion of currently duplicate page.
= 1.4 (18th Jun, 2016) =
* New Features added
= 1.3 (23th May, 2016) =
* New Features added
= 1.2 (05th May, 2016) =
* Duplicate Page Settings Menu Added.
= 1.1 (04th May ,2016) =
* fix some Bug in 1.0
== Other Notes ==
== Minimum requirements for Duplicate Page ==
* Wordpress 3.3+
* PHP 5.x
* MySQL 5.x
home/studionolh/www/wp-content/plugins/updraftplus/readme.txt 0000644 00000535142 15233574063 0020660 0 ustar 00 === UpdraftPlus: WP Backup & Migration Plugin ===
Contributors: Backup with UpdraftPlus, DavidAnderson, pmbaldha, DNutbourne, aporter, bcrodua
Tags: backup, database backup, wordpress backup, cloud backup, migration
Requires at least: 3.2
Tested up to: 7.0
Stable tag: 1.26.5
Author URI: https://updraftplus.com
Donate link: https://david.dw-perspective.org.uk/donate
License: GPLv3 or later
Backup, restore or migrate your WordPress website to another host or domain. Schedule backups or run manually. Migrate in minutes. Reliable and easy to use.
== Description ==
<a href="https://updraftplus.com">The UpdraftPlus Backup & Migration Plugin</a> is trusted by the WordPress community to backup, restore and migrate their WordPress websites. UpdraftPlus is actively installed on more than 3 million websites around the world.
= Backup with UpdraftPlus =
UpdraftPlus is the world’s highest ranking and most popular scheduled backup and migration plugin. Backup to your preferred storage location and restore in just three clicks.
Backup to Dropbox, Google Drive, Amazon S3 (or compatible), Rackspace Cloud, FTP, DreamObjects, Openstack Swift or email.
The paid version also allows you to backup to Microsoft OneDrive, Microsoft Azure, Google Cloud, Backblaze B2, SFTP, SCP, pCloud, WebDAV or UpdraftVault, our integrated storage option for UpdraftPlus.
Backup manually or schedule to run every 2, 4, 8 or 12 hours, daily, weekly, monthly or fortnightly.
= Restore with UpdraftPlus =
Your WordPress website is vulnerable. Your site may get hacked. Something could go wrong with an update or your server could crash. You might need to reverse a change made or a mistake caused by human error.
Whatever the reason, you can restore your WordPress website in just a few clicks with UpdraftPlus. Choose which components to restore (e.g. plugins, themes, database etc.), click again to restore, then click again to return to the main screen.
= Migrate with UpdraftPlus =
It’s easy to migrate your WordPress website to another web host, server or domain with this free version of UpdraftPlus.
To migrate, simply download your database, plugins, themes etc. from the source site, then upload them into your destination site.
When migrating, a built-in search-and-replace engine identifies old strings and replaces these to reflect the new location. UpdraftPlus saves you time and reduces the risk of broken links or missing files associated with manual migrations.
= Why UpdraftPlus? =
Writing a reliable backup and migration plugin that ‘just works’ consistently across millions of different WordPress deployments is hard. UpdraftPlus is relied upon to do exactly that. We’re trusted and actively deployed on more websites around the world than any other WordPress backup and migration plugin.
UpdraftPlus:
* Backs up, migrates and restores
* Offers a huge number of remote storage locations
* Allows you to schedule backups, so you can ‘set and forget’
* Is comprehensive and easy to use
* Is proven to work on over 3 million sites.
[vimeo https://vimeo.com/154870690]
= UpdraftPlus Premium =
The free version of UpdraftPlus will back up and migrate your website perfectly well. However if you need more features and options you can purchase our Premium version.
Backup and Migrate with UpdraftPlus Premium, and:
* Get automatic backups before updates. Restore the very latest version if a WordPress or plugin update breaks your site.
* Backup Incrementally. Changes are added to the master, saving server resources vs repeatedly backing up in full.
* Get more remote storage options including Microsoft OneDrive, SFTP, Microsoft Azure, WebDAV, Google Cloud, SCP, Backblaze and pCloud.
* Get 1GB of integrated storage with UpdraftVault for 99.999% reliability, redundancy and scalability.
* Get more control over how many backups are stored in a specified interval.
Restore from other backup plugins including BackWPup, BackupWordPress, Simple Backups and more.
* Run backups at set times e.g. during periods of low traffic.
* Backup to more than one location for added protection.
* Get detailed reports. Includes cryptographic checksums so you can verify the integrity of the backup files and more.
* Get Premium migration. Migrating to the destination site is more direct and can be done from the source site.
* Get Multisite / multi-network compatibility.
* Backup non-WP files and databases e.g. tables belonging to your e-commerce store or customisations to WordPress core.
* Get database encryption.
* Manage your backups and migrations from the WP-CLI.
* Get Premium Support.
Find out more <a href="https://updraftplus.com/comparison-updraftplus-free-updraftplus-premium/">on our comparison page</a>. UpdraftPlus Premium is available for purchase <a href="https://updraftplus.com/shop/">here</a>.
= Managing multiple websites? =
UpdraftCentral is a powerful remote control dashboard for WordPress that allows you to manage your backups, as well as updates, users, pages, posts, plugins and themes from one central location. Choose between:
* <a href="https://wordpress.org/plugins/updraftcentral/#description/">UpdraftCentral</a> (free, self-hosted)
* <a href="https://updraftplus.com/shop/updraftcentral-premium/">UpdraftCentral Premium</a> (paid-for, self-hosted)
* <a href="https://updraftplus.com/shop/updraftcentral-dashboard/">UpdraftCentral Cloud</a> (paid-for, fully-hosted)
Optimize your sites centrally by combining the power of WP-Optimize and UpdraftCentral or manage your backups centrally by combining the power of UpdraftPlus with UpdraftCentral.
= Need to create a temporary clone of your site? =
UpdraftClone makes it quick and easy to create a temporary sandbox for changes you want to try out. Simply select the versions of WordPress and PHP that you want, and we’ll do the rest. <a href="https://updraftplus.com/shop/updraftclone-tokens/">More about UpdraftClone</a>
= The full suite of plugins from Team Updraft and friends =
* <a href="https://updraftplus.com">UpdraftPlus</a>.
<b>Backup, migrate and restore.</b> Rated 5* on the plugin directory and trusted by more than 3 million WordPress website owner
* <a href="https://getwpo.com">WP-Optimize</a>.
<b>Clean the database, compress images and caching.</b> Optimize your WordPress website. 5* user rating. 1 million + active installs.
* <a href="https://aiosplugin.com">All-In-One Security (AIOS)</a>.
<b>Secure your WordPress website.</b> Comprehensive, feature rich and easy to use. 5* user rating and 1 million + active installs.
* <a href="https://wpovernight.com">WP Overnight</a>.
<b>Quality Extensions for your WooCommerce store.</b> 5* rated invoicing, order and product management, customer management solutions and more.
* <a href="https://easyupdatesmanager.com">Easy Updates Manager</a>.
<b>Take control of updates.</b> Lots of features for free, and a Premium version with even more - over 300,000 users.
* <a href="https://www.internallinkjuicer.com">Internal Link Juicer</a>.<b>Boost your SEO.</b> Automate internal links within your WordPress website. Save time and rank higher in the search engines.
For other useful, free plugins see <a href="https://profiles.wordpress.org/davidanderson/#content-plugins">our lead developer's profile, here</a>.
= Are you multilingual? Can you translate? =
Do you want to help people that speak your language to backup, migrate and restore their WordPress websites?
The UpdraftPlus backup, migration and restoration plugin is ready and waiting. The translation process is easy, and web-based – please go here for instructions: https://updraftplus.com/translate/.
Or, if you’re already an expert WordPress translator, just pick out the .pot file from the wp-content/plugins/updraftplus/languages/ directory – if you scan for translatable strings manually, then you need to get these functions: _x(), __(), _e(), _ex(), log_e().
Many thanks to our existing translators.
== Frequently Asked Questions ==
= How do I install the UpdraftPlus backup & migration plugin? =
Here are the installation guidelines from our [YouTube channel](https://www.youtube.com/watch?v=7ReY7Z19h2I) or from [our website](https://updraftplus.com/download/).
= What if I have a problem / need support ? =
If you’re struggling to backup, migrate or restore there’s help available.
Search existing topics on the WordPress support forum or post a new one. Our support and development teams check and respond to queries everyday.
UpdraftPlus Premium customers can log a ticket directly with our support and development teams via the [UpdraftPlus support hub](https://updraftplus.com/support/).
Before you get in touch, please ensure that you have read through our [FAQs](https://updraftplus.com/frequently-asked-questions) and that you’ve updated to the latest release of our plugin.
It helps greatly if you can include the backup log and as much other information as possible in your report, for example the PHP version, your website, the error description, how you got to the page that caused it, any other relevant plugins you have installed, plus any other information that might be of use.
To find the backup log: there are links to download the logs on the UpdraftPlus settings page in the plugin - or you may be emailed it. Failing that, FTP into the directory wp-content/updraft and look for it there.
If you know how, please send your PHP error logs - just the few lines that appear when you run a backup, often the file called error_log, possibly in your wp-admin directory which you can check via FTP. If you’re a programmer that can debug and send a patch, that’s even better.
= When it comes to migration, what does the premium plugin do that the free plugin can't? =
Migrating in the free plugin involves downloading the backups from the source site then uploading these to the destination site.
To find the backup log: there are links to download the logs on the UpdraftPlus settings page- or you may be emailed it. Failing that, FTP into the directory wp-content/updraft and look for it there.
Both free and Premium plugins include a built-in search-and-replace engine to replace old strings with the new location.
If migration is all you require, and for simple single site migrations the free plugin will likely be enough to meet your needs. If you have additional needs around backups e.g. the ability to backup before updates, if you require more remote storage locations or if you have a WordPress multisite then we recommend UpdraftPlus Premium for the additional benefits that it brings.
= UpdraftPlus runs out of time when it’s trying to backup, after I have left it for some time to give it a good chance. What can I do? =
This problem is probably caused by your account being starved of resources by your (cheap) web host provider. This is far from ideal; although UpdraftPlus supports resuming backup runs right from the beginning to avoid everything having to be done at once, it has its limits. The best thing is to choose a more reputable web host. Failing this, try going into the “Expert settings” and reducing the size at which zip files are split. UpdraftPlus is known to successfully backup websites that run into the multiple-gigabytes on web servers that are not resource-starved.
== Changelog ==
The [UpdraftPlus backup blog](https://updraftplus.com/news/) is the best place to learn in more detail about any important changes.
N.B. Paid versions of UpdraftPlus Backup / Restore have a version number which is 1 higher in the first digit, and has an extra component on the end, but the changelog below still applies. i.e. changes listed for 1.16.32.x of the free version correspond to changes made in 2.16.32.x of the paid version.
= 1.26.5 - 05/Jun/2026 =
* SECURITY: Previous versions contained a defect allowing sites with an active Migrator key (paid versions only) or UpdraftCentral key (free and paid versions) to have unauthorised operations carried out on them. All users should update immediately.
* TWEAK: Added explicit HTTP timeout of 60 seconds to pCloud chunk upload requests to prevent cURL error 28 on slow server connections
* TWEAK: Guard curl_close(), finfo_close() and xml_parser_free() calls with a PHP version check to prevent deprecation warnings on PHP 8.5+
* TWEAK: Update the bundled common-libs version
* TWEAK: Replace all usages of wpdb::esc_like() with UpdraftPlus_Database_Utility::esc_like() across the codebase to maintain consistency.
* TWEAK: Add "auto-backup before update" tour guide
= 1.26.4 - 07/May/2026 =
* FIX: In version 1.26.2, a regression prevented the backup schedule, including the day name or number, as well as backup entity exclusion rules, from being saved.
* TWEAK: Alert users who wrongly enter URLs instead of an actual hostname for SFTP and FTP remote storage.
* TWEAK: Updated DreamObjects endpoints by removing the deprecated objects-us-west-1, marking objects-us-east-1.dream.io as unavailable (Nov. 12th, 2025), and adding admin notices to inform users of this change.
* TWEAK: get_structured_data() now accepts params to avoid timeouts.
= 1.26.3 - 23/Apr/2026 =
* FEATURE: Implemented enhanced streaming extraction for large files during restoration to handle cases where the file size exceeds the PHP memory limit.
* FIX: Fix users role filter empty state shows generic “Failed to Fetch Data” error.
* FIX: Fixed backup failures on tables with invisible columns and large data volumes.
* FIX: Unable to uncheck all categories on post in UDC dashboard
* TWEAK: Added a new internal command to get given plugins' installation info.
* TWEAK: Ensure autobackup notice is always a string to prevent PHP 8.1+ deprecation in wp_kses()
* TWEAK: Fix the JS errors that occur when deleting the last generated UDC keys.
* TWEAK: Implemented adjustments for UI misalignment issues caused by the WordPress 7 visual design refresh across the admin dashboard. The plugin's interface now aligns correctly with the updated design standards.
* TWEAK: Prevent broken settings pages in other plugins in multisite when UpdraftPlus is active due to modified menu URLs.
* TWEAK: Update all links in the addons folder to use teamupdraft.com instead of updraftplus.com.
* TWEAK: Replaced esc_html_e() with esc_html__() where string concatenation was silently discarding the colon separator in SFTP connection failure message and noscript JavaScript warning notice
* TWEAK: Switched to native phpseclib API/function for Dropbox token decryption, replacing deprecated mcrypt_decrypt since PHP 7.1 and removed in PHP 7.2.
* TWEAK: Clear out PHP "Undefined offset" notice that occurred while restoring a backup of single site to multisite. It happened during the search-replace operation due to the absence of the users and usermeta tables.
* TWEAK: Enhance the unzip file function to handle more folder inclusion/exclusion
* TWEAK: Update all links in the methods folder to use teamupdraft.com instead of updraftplus.com.
* TWEAK: Add post status and date fields to get_posts API response for UDC
= 1.26.2 - 03/Mar/2026 =
* TWEAK: Added PHP 8.5 support to UpdraftClone
* TWEAK: Fix deprecation warnings in PHP 8.4 for the Dropbox integration
* TWEAK: Make abort backup warning icon responsive with percentage-based sizing
* TWEAK: Prevent the suppressed PHP warnings from being output in the backup and restore log on PHP 8.0+
* TWEAK: On a site where the site owner has restricted (super-)administrators (so that they can't restore backups), require a constant to first be set to use the HTTP debug tool for internal IP addresses.
* TWEAK: Update all links in the settings folder to use teamupdraft.com instead of updraftplus.com.
* TWEAK: When deleting backup sets created through a direct site-to-site migration, the 'Also delete from remote storage' checkbox is unnecessary.
= 1.26.1 - 19/Jan/2026 =
* FIX: Google Drive chunked uploads didn't resume from where it left off but started from the beginning resulting in file duplicates
* TWEAK: Add a WP-CLI command to register a product key (premium)
* TWEAK: Add product registration link on the premium version
* TWEAK: Fix JS error on UpdraftCentral Cloud connect modal.
* TWEAK: Fix grammatical error in the low disk space admin notice.
* TWEAK: Update links for better user experience
* TWEAK: Update the premium links on the settings page
* TWEAK: Update all links in the includes/notices/central folders to use teamupdraft.com instead of updraftplus.com.
* TWEAK: Upgrade the common-libs tag version
= 1.25.9 - 12/Nov/2025 =
* FIX: A regression that resulted in the list of tables within the "Database size" tools not being displayed, due to code refactoring implemented in version 1.25.8.
* TWEAK: Add function for returning Advanced Tools menu data in a structured format.
* TWEAK: Resolve regression in 1.25.2 which caused the admin notice "Not yet connected to licence" was linking to teamupdraft.com instead of the UpdraftPlus Premium/Extensions tab.
* TWEAK: Refactoring connection keys data function to deduplicate and read from a single source
* TWEAK: Restored the missing backup confirmation pop-up icon for older WordPress versions.
* TWEAK: Stripped unwanted HTML from the plain-text notice and added new lines after each sentences in the sale offer message.
* TWEAK: Update Black Friday seasonal sale URL/link
* TWEAK: Updated "Check our premium" and "Back up non-WP tables and external databases" URL links to avoid HTTP 404 (not found) errors.
* TWEAK: Update database charset detection to support both CHARSET= and CHARACTER SET syntax in SQL dumps
* TWEAK: Replaced deprecated (boolean) casting
= 1.25.8 - 07/Oct/2025 =
* FIX: A fatal error in UpdraftCentral when trying to manage posts when no posts exist.
* FIX: During a failure in the file copy process while restoring, a directory was created with the same name as the file, and the restoration process persisted when it ought to have been stopped
* FIX: PHP fatal error in WP CLI commands for listing or scanning existing backups on PHP 8.0+ after a rescan
* TWEAK: Add UpdraftCentral support to import_settings function with return values
* TWEAK: Add support for new Amazon AWS S3 regions
* TWEAK: Added Burst Statistics to the family plugin list
* TWEAK: Adjust the backup logic to recognize invisible columns, and when that occurs, use a query that explicitly specifies the required columns instead of relying on "SELECT *".
* TWEAK: Ensure the restore process terminates with an error when file copying/moving fails
* TWEAK: Improve the backup email report to better reflect the backup types and status.
* TWEAK: New endpoint for getting locked settings data for UpdraftCentral
* TWEAK: Perform a search and replace on __PHP_Incomplete_Class to make it work with unserialize() when object deserialization is not allowed.
* TWEAK: Refactoring site info section to deduplicate and read from single source
* TWEAK: Resolved a PHP warning triggered when uploading the plugin via the WP Plugins page — caused by translation functions (e.g. __()) being called too early.
* TWEAK: Some text was left out of the translation POT file, which meant that certain translator plugins and libraries could not find the text, making it impossible to translate.
* TWEAK: Update the db_size function to allow returning either data or html, depending on the argument that is passed in.
= 1.25.7 - 07/Aug/2025 =
* FIX: A regression for verifying the presence of old folders in the backup directory; old folders created during the restoration of the "Others" entity were not detected correctly.
* FIX: The per-backup lock entries were not removed, resulting in an accumulation of these entries in the database over time. (Includes clean-up of old entries).
* TWEAK: Add IDrive e2 and MEGA to the S3-Compatible storage list
* TWEAK: Internal function call to prevent a PHP 8.1 deprecation notice on fresh WP installs
* TWEAK: Add wp-staging to the default uploads exclusion list
* TWEAK: Add UpdraftCentral handler for site icon upload request.
* TWEAK: Added support for the database view dashicon in WordPress versions prior to 5.5.
* TWEAK: Include site icon information in the 'get_site_icon' response of the UpdraftCentral core module.
* TWEAK: Resolve the empty list issue on the backup email reports created by the UpdraftPlus free version
* TWEAK: The "Get every feature of UpdraftPlus Premium" box shouldn't be displayed after purchases got claimed/activated
* TWEAK: Remove seasonal (new year, summer, spring and plugin collection) sale notices
* TWEAK: Handle unsupported character set defined for table fields during database pre-restoration.
* TWEAK: Updated links in the Premium Extensions tab of the plugin’s admin menu page.
= 1.25.6 - 27/May/2025 =
* FIX: A regression that prevented the remote storage label from being updated
* FIX: A regression that could cause unintended behaviour when restoring special files
* FIX: A fatal error when executing a standalone php backup script with "do_action('updraft_backup_all')".
* FIX: Regression that caused certain features (e.g. PHP Info) to break due to a missing HTML attribute on the triggering element
* FIX: An issue that caused migration failure for sites using the Performance Lab plugin or other plugins implementing an object cache drop-in
* TWEAK: handle non fatal file rename failure during restore
* TWEAK: The automatic backup feature is now disabled by default on new installs
* TWEAK: return post status and formatted date from UDC post API
* TWEAK: Replace a call to unserialize() in the Dropbox storage library
* TWEAK: Validate the DreamObjects endpoint to ensure only expected DreamObjects enpoint formats can pass through.
* TWEAK: Position the "includes all tables not listed below" option at the beginning of the first known table in the DB restoration widget.
* TWEAK: Add a new default endpoint in DreamObjects along with UI to allow users to add custom endpoint in the format "s3.<region>.dream.io".
* TWEAK: The Azure Storage Service add-on now requires PHP 5.6 or higher to support the mandatory use of TLS 1.2, which will be enforced starting August 31, 2025.
= 1.25.5 - 17/Apr/2025 =
* FIX: A bug that prevented the Rackspace "Create new API user and container" dialog from opening.
* TWEAK: An HTTP header intended to terminate the browser's connection was incorrectly assigned a value that the header does not support.
* TWEAK: Ability to automatically choose the proper checkout page when the user is about to buy TeamUpdraft products from within the plugin
* TWEAK: Clear Divi theme CSS cache at the end of the restoration process
* TWEAK: Resolve PHP warning in pCloud addon when upgrading from free to premium version.
* TWEAK: Update error messages when the user fails to connect to their TeamUpdraft account on the 'Premium/Extensions' tab.
= 1.25.4 - 24/Mar/2025 =
* FIX: Regression in 1.25.3 - missing database encryption input field due to the use of the "wp_kses_post" function that doesn't allow "<input>" tag to be rendered
* TWEAK: Add new fields to UpdraftCentral handler
= 1.25.3 - 21/Mar/2025 =
* FIX: An issue that prevented an UpdraftClone backup from sending when attempting to boot an UpdraftClone from WP_CLI
* FIX: An issue that prevented changing the default UpdraftClone region when attempting to boot an UpdraftClone from WP_CLI
* TWEAK: The "x-amz-content-sha256" request header is now signed and included in the S3 signature version 4. Some S3-based providers mandate the signing of this header for accurate signature calculation.
* TWEAK: Introduce a new constant named "UPDRAFTPLUS_S3_EXCLUDE_SIGV4_CONTENT_SHA256_HEADER". This constant allows for the exclusion of the "x-amz-content-sha256" headers from being signed if desired; it accepts a boolean value, defaulting to false.
* TWEAK: Add 'noopener, noreferrer' window features to the Javascript's window.open() call to prevent the target page from changing content of the original page
* TWEAK: Favicon fetching feature for UpdraftCentral
* TWEAK: Minor tweak to "updates" module to include icons to plugin and screenshot url to theme update items
* TWEAK: New UpdraftCentral module for background fetching
* TWEAK: Revise the wording found in the expert settings regarding the deletion of local backup files
* TWEAK: Update seasonal notices
* TWEAK: Enhance the notifications to signify the introduction of other plugins that belong to the same plugin family
* TWEAK: To avoid CORS issues and ensure the UpdraftPlus plugin is functional and accessible via the UpdraftCentral dashboard, the hostname and/or domain origin is changed from updraftplus.com to teamupdraft.com.
* COMPATIBILITY: Resolved PHP deprecation warnings in lockadmin.php by eliminating the use of dynamic properties
= 1.25.2 - 26/Feb/2025 =
* FEATURE: Added a "Cron events" tab in the Advanced Tools section to check for the presence of the UpdraftPlus cron job.
* FIX: Resolve the issue of uploads to pCloud failing after a folder name change by resetting the "folderid" whenever the folder name is updated.
* TWEAK: Add site information for WooCommerce and HPOS support to the database backup header.
* TWEAK: Create a log entry when a bot verification page appears during the file upload in the migration procedure.
* TWEAK: Improve error message clarity for failed connection tests in migration.
* TWEAK: Include details in the backup log file about the status and availability of the proxy configured in the system.
* TWEAK: Update the Google library to support the WP_PROXY_HOST and WP_PROXY_PORT constants.
* TWEAK: Update the link for Onedrive and Azure app creation
* COMPATIBILITY: Got rid of PHP 8.4 deprecation messages caused by the E_STRICT constant usage
= 1.25.1 - 11/Jan/2025 =
* SECURITY: Fix a non-persistent reflected XSS vulnerability due to a missing nonce combined with missing sanitisation. This could allow an attacker, who persuaded you to click a personally-crafted link to your site's dashboard whilst you were logged in, to once run JavaScript code in your dashboard. Thanks to Asaf Mozes for finding and responsibly disclosing this issue.
* FIX: Prevent the restoration from failing when there is a 'sync-xhr=()' permission policy on the response header.
* FIX: Improve the approach of acquiring a suggested region for Amazon AWS S3 if a failure arises during the getBucketLocation() call, particularly when the XML response fails to provide a field for the suggested region - this resolves issues with regions (e.g. us-east-2) which recently changed their response behaviour
* TWEAK: Broaden the support to incorporate the "ap-southeast-4" region of Amazon AWS S3 and additional recently updated regions
* TWEAK: A regression in the paid version update checker to version 4.13.2, resulting in non-appearance of notices concerning subscription status or WP version compatibility.
= 1.24.12 - 23/Dec/2024 =
* FIX: The pre-restoration stage failed to properly address the tables that were to be excluded, which caused a logical error that misread the checked "include all tables not listed" option as an instruction to restore every table
* FIX: Update PHPSecLib library to version 2.0.48 which has the fixes for the "gmp_pow(): base and exponent overflow" on certain PHP versions and could cause backups to fail on the SFTP remote storage
* TWEAK: Complete the review and removal of calls to the unserialize() PHP function allowing class instantiation begun in 1.24.7. (The final removal involved a theoretical security defect, if your development site allowed an attacker to post content to it which you migrated to another site, and which contained customised code that could perform destructive actions which the attacker knew about, prior to you then cloning the site. The result of this removal is that some search-replaces, highly unlikely to be encountered in practice, will be skipped).
* TWEAK: Drop search and replace feature for PHP 5.2 users (to fulfil the preceding item)
* TWEAK: Tweak UpdraftCentral media module to add "has_image_editor" property to each media item
* TWEAK: On the restoration screen in a multisite configuration, the dropdown labeled "which site to restore" was covering other HTML elements, which caused some buttons to be positioned at the bottom instead of at the top
* TWEAK: Avoid deregistering jQuery-UI CSS if already printed by other plugins to prevent compatibility issues
* TWEAK: In the context of database restoration, the execution of LOCK and/or ALTER SQL statements must be avoided for any tables that are part of the "skipped tables" list
* TWEAK: openssl_free_key() is only needed on PHP < 8
* TWEAK: Various coding style changes to comply with "Plugin Check" rules
= 1.24.11 - 15/Nov/2024 =
* TWEAK: Do not request drive.readonly scope on Google Drive connections, due to Google's app permissions review (unannounced and requires us to create a Youtube video for their review process) - this means that (until the review completes) new connections to Google Drive can only access backups created by UpdraftPlus directly, and not backups which you manually upload to Google Drive. This restores the ability to make new connections to Google Drive.
* TWEAK: Adjustment of the UpdraftPlus_S3_Compat class to preserve compatibility with the external UpdraftPlus AWS SDK plugin (https://github.com/DavidAnderson684/updraftplus-aws-sdk).
= 1.24.9 - 14/Nov/2024 =
* FIX: A regression in 1.24.8 when handling restoration of wp-config.php
* TWEAK: The changes in handling of loading text domains in 1.24.8 did not cover most cases
* TWEAK: Introduce the "updraftplus_use_builtin_wpcore_restoration" filter which can be used to restore WP-Core entity using a different WP-Core restoration mechanism especially in a case that the admin-ajax.php file couldn't be deleted during the restoration
= 1.24.8 - 13/Nov/2024 =
* TWEAK: Add descriptions for the 'Clone Package' dropdown when creating a clone.
* TWEAK: Move the "load_plugin_textdomain" call from being called through "plugins_loaded" action to being called via "init" action
* TWEAK: Update the log message to specify that backup files are marked as "processed" when no remote storage is selected, and as "uploaded" when remote storage is selected.
* TWEAK: Some code tidying in the restore class
= 1.24.7 - 04/Nov/2024 =
* TWEAK: Include the .part file extension into the cleanup list, guaranteeing that files associated with this extension are regularly deleted from the backup directory
* TWEAK: The update functionalities in the WordPress plugin information box (6.5 and later) have been adjusted to stop updates from taking place in the same window, ensuring that the "auto-backup before update" dialog appears as intended
* TWEAK: Add customized "unserialized" method into the UpdraftPlus class which can handle the use of the "options" argument or its absence when running across different PHP versions
* TWEAK: Add the UPDRAFTPLUS_SEND_UNWRITABLE_BACKUP_DIRECTORY_EMAIL constant to disable the sending of unwritable backup directory emails to users.
* TWEAK: Clearer notifications to users regarding unconfigured remote storage settings and/or the selection of remote storage that are not part of their UpdraftPlus version
* TWEAK: During the resumption of OneDrive’s chunk uploads, the authorisation header and bearer token should not be included as it may lead to an unauthenticated error due to a different upload URL.
* TWEAK: Implement code to enable automatic activation of the UpdraftPlus plugin during the migration process from a multisite setup to a standalone site
* TWEAK: In a multisite environment, ensure that users can access the UpdraftPlus plugin page even in the absence of the WP_ALLOW_MULTISITE constant
* TWEAK: UpdraftClone now supports PHP 8.4
* TWEAK: Prevent a potential PHP deprecation notice when zip creation fails
= 1.24.6 - 25/Sep/2024 =
* TWEAK: In 1.24.5, the browser title wrongly displayed as "UpdraftPlus" when accessing an unrelated plugin page using the main menu.
= 1.24.5 - 24/Sep/2024 =
* FIX: Incorrect regular expression for DigitalOcean Spaces endpoint
* FIX: CSS conflicts with the LearnDash LMS Instructor Role Add-on plugin which caused some UI elements to disappear
* TWEAK: Reorganize UpdraftPlus in left-hand menu and rename it to "UpdraftPlus"; to disable it, follow this guide: https://updraftplus.com/new-location-of-updraftplus-in-the-wordpress-dashboard/
* TWEAK: Add span wrapper to UpdraftCentral connection failed message
* TWEAK: Add the "Go here to complete your settings" link into the appropriate admin notice that when clicked will jump to the UpdraftVault configuration if no settings are specified.
* TWEAK: Adjust regex patterns that didn't match some temporary files, causing them to not be automatically removed
* TWEAK: After a restoration, clicking "Delete old folders" will also remove the wp-config-pre-ud-restore-backup.php file
* TWEAK: On the settings page/tab; prevent the floating "Save changes" button from getting clicked multiple times and/or sending multiple AJAX requests
* TWEAK: Remove pCloud from the add-ons list on the "Premium / Extensions" tab (there is no change in its availability)
* TWEAK: Renamed wp-config-backup.php to wp-config-pre-ud-restore-backup.php to clarify its purpose as a backup file created before restoring WordPress core entities, and it will only be generated if the user does not select the "Over-write wp-config.php" option during restoration, as the previous name was too generic and could cause confusion
* TWEAK: The popup modal for automatic plugin updates fails to retain the backup checkbox selection when the "remember" option is enabled in a Multisite environment.
* TWEAK: Updated autobackup selector to resolve issues caused by the missing "update-link" class in WPForms Pro plugin
= 1.24.4 - 2/Jul/2024 =
* FIX: Case-sensitive issue of bit field type names in a table.
* FIX: Resolved issue where backup files could not be deleted from remote storage when either the root directory was active or no directory was specified in the OneDrive configuration form.
* FIX: When users attempt to update a plugin using the "View Version x.x.x Details" link instead of choosing "Update Now," the plugin is successfully updated; however, the UI incorrectly displays an "Update Failed" message
* FIX: Conflict with the Gravity Forms plugin when there was an older version of jQuery UI presented on the "Installed Plugins" page.
* TWEAK: Ensure compliance with Google Granular Consent and check for required permissions during storage access authorisation of Google Drive and Google Cloud
* TWEAK: Prevent PHP warning and deprecation messages after completing access authorisation to Google Drive storage.
* TWEAK: Prevent PHP warning when Dropbox remote storage has been authenticated and the page is refreshed.
* TWEAK: Added filter updraftplus_working_dir_localpath to allow temporary unzip path to be modified by developers
* TWEAK: Modify the displayed title of the plugin from "WordPress Backup & Migration Plugin" to "WP Backup & Migration Plugin" as required by the plugin directory team
* TWEAK: Parse certain php events and log proper error messages
= 1.24.3 - 30/Apr/2024 =
* FIX: Regression in 1.23.16 for improving logs which then caused incorrect_offset error reported by Dropbox wasn't properly handled.
* TWEAK: The UpdraftVault remote storage can handle Wasabi as well as Amazon S3 storage in the background.
* TWEAK: Fix WP_Theme_JSON_Resolver::theme_has_support deprecation warning for UpdraftCentral
* TWEAK: Prevent "PHP Warning: Undefined property: UpdraftPlus_BackupModule_pcloud::$description" during rescan remote storage.
* TWEAK: Prevent PHP deprecation warnings during database backups when encountering null values in bit field types.
* TWEAK: Show a warning message when the WP_ACCESSIBLE_HOSTS constant is defined and updraftplus.com is not permitted by its value
* TWEAK: Update notices
* TWEAK: Split multiple sentences into separate translation function calls.
* TWEAK: Trim spaces from S3-Compatible (Generic) endpoint.
= 1.24.2 - 26/Mar/2024 =
* FIX: The "Continue restoration" and "Dismiss" buttons on the unfinished restoration dialog were not responsive to being pressed due to a recent regression
* FIX: Conflict with other plugins due to different version of third party library (Guzzle) and the composer autoload.php was called too early
* FIX: Undefined "NET_SCP_LOCAL_FILE" constant when SCP was in use for the SFTP/SCP remote storage
* TWEAK: Add compatibility fields when returning plugins and themes to UpdraftCentral
* TWEAK: Due to issues in some cURL versions 7.x in handling HTTP/2 connections, all HTTP connections to the OneDrive API are now forced to use HTTP/1.1 version, on cURL versions after 7.61 and before 8.0. Also, a constant named UPDRAFTPLUS_ONEDRIVE_CURL_HTTP_VERSION can be set in the wp-config.php file to change the default HTTP version to another preferred version
* TWEAK: Adjust margin to fix broken UI for the 'View logs' button on backups.
* TWEAK: Ensure all "SET SQL_MODE" statements in the database backup file are internally handled and are subjected only to a restoration outside UpdraftPlus plugin
* TWEAK: Prevent PHP 8.2 coding style deprecation notices in the autobackup addon
* TWEAK: In the context of OneDrive's chunk upload, authorisation header and bearer token should not be included during upload session as it may lead to 401 HTTP status due to different upload URL
* TWEAK: Remove default value for updraftplus_https_to_http_additional_warning and updraftplus_http_to_https_additional_warning filters.
* TWEAK: Set the SQL_MODE to 'NO_AUTO_VALUE_ON_ZERO' in the database backup file.
* TWEAK: Seasonal notice content update for 2024
* TWEAK: During the operations that require phpseclib, include the composer autoload.php only when the phpseclib is really needed
= 1.24.1 - 21/Feb/2024 =
* FEATURE: Implement Backblaze Object Lock support (Premium version)
* FIX: The email backup and basic report setting didn't work causing notification email confirming backup status couldn't be delivered to admin's email address (free version)
* FIX: Fix WP-Optimize premium discovery for UpdraftCentral
* FIX: Regression in 1.23.16 for correcting calls to translation functions which then caused some HTML attributes to be empty
* FIX: Restoring backup sets via Migrate/Clone tab had caused all associated backup entities being downloaded immediately ignoring user preferences about the entities they wanted to restore
* FIX: Third-party library conflict (phpseclib) with WP All Import Pro and AIO WP Migration plugins that caused failure in testing SFTP credentials and backing up to the SFTP remote storage
* FIX: Restore compatibility with WordPress multisite running on versions < 4.9 caused by use of function not present before then
* TWEAK: Add new translation entries for UpdraftCentral
* TWEAK: Got rid of PHP 8.2 deprecation messages caused by a null value being passed to the htmlspecialchars() function and creation of dynamic property
* TWEAK: Got rid of PHP 8.3 deprecation messages caused by calling get_class() without arguments.
* TWEAK: Refactor methods in UpdraftPlus_Database_Utility class
* TWEAK: Send an email if the backup directory is not writable.
* TWEAK: Add and set the `filename_only` parameter to reduce search times when looking for specific backup files in Dropbox.
* TWEAK: Autoload PHP secure communication library (phpseclib) in a better way that would prevent already-loaded phpseclib classes (by other plugin) from being used in certain operations
* TWEAK: Add updraftplus_backup_db_header_append filter to allow site owners to include arbitrary content in their database backup header
= 1.23.16 - 23/Dec/2023 =
* TWEAK: Added demo link for the family plugin in advertisement
* TWEAK: Removed https / http prefix from s3generic endpoints
* TWEAK: Resolve PHP 8.0 compatibility with ob_implicit_flush function
* TWEAK: Dropbox error logs improvement
* TWEAK: As required by the wordpress.org plugin team, all UpdraftPlus news is forbidden to be displayed in the "WordPress News" section of the dashboard for users of the free plugin even if consent is first given.
* TWEAK: Fix some incorrect calls to translation functions
= 1.23.14 - 30/Nov/2023 =
* FIX: Resolved Google Cloud remote storage authentication flow
* TWEAK: Changed updraftvault links functionality to open in different tab
* TWEAK: Clarify significance of warnings in report emails
* TWEAK: Make the news-consent's layer fit with the confirmation text thus removing empty space that can reveal some of the UpdraftPlus news
* TWEAK: Declare a shim "php_uname" function when it's found to be undefined to prevent a fatal error in the phpseclib library (which calls it)
= 1.23.13 - 22/Nov/2023 =
* FIX: An issue that prevented incremental backups from running via WP-CLI or Cron when the option to backup mu-plugins was enabled but no mu-plugins existed
* FIX: OneDrive remote storage authentication was giving the error "Invalid input."
* FIX: The option to back up additional, user-chosen files (i.e. the morefiles entity) was no longer present in the UI
* TWEAK: Remove unused "migrator-lite.php" string during search and replace operations
* TWEAK: Replace remaining hardcoded text domain with UPDRAFTCENTRAL_TEXT_DOMAIN placeholder within the central folder
* TWEAK: LiteSpeed admin dashboard warning is now displayed upon completion of migration on the destination site, even after dismissing the message on the source site.
* TWEAK: Do not show UpdraftPlus news in the WordPress events and news widget section without first gaining user consent
* TWEAK: Change order of checks when seeing if cPanel is present/accessible for asking about disk quota in order to prevent unwanted an PHP notice when safe_mode is active
* TWEAK: Prevent potential fatal error if something has modified an updates check's 'translation' property to be invalid before passing on to UpdraftPlus
* TWEAK: Update bundled cacert.pem file
= 1.23.12 - 08/Nov/2023 =
* FIX: Issue that prevented some database restores from completing due to a change in wpdb in WordPress 6.4
* TWEAK: Replace Javascript onchange event with oninput event to detect changes made for HTML <input> tags on the settings page, also to add <textarea> to the event handler so that unsaved changes can be detected
= 1.23.11 - 03/Nov/2023 =
* SECURITY: Fix a vulnerability which could, if you had Google Drive storage enabled, and if an attacker targetted a logged-in administrator on your site and persuaded them to access a specific URL that the attacker creates, add the attacker's own Google Drive account to the saved storage methods. Thanks to Nicolas Decayeux of Patrowl for finding and disclosing this issue.
* FEATURE: Add JSTree for Google Drive to select existing folder
* FEATURE: The "Must-use plugins" backup entity can be backed up and restored separately in a normal WordPress site
* FIX: OneDrive folder case sensitivity issue (successfully uploaded backup files to the remote storage but failed in pruning old backup files due to different letter capitalisation; also happened in manual deletions)
* FIX: When two instances of WebDav remote storage were sequentially added in the Premium version, filling some fields of the latest instance would break the WebDav URL of the previous instance
* TWEAK: Update phpseclib library from version 1 to 2. As previously advised, this also means that these features (Database Encryption, Dropbox & SFTP/SCP remote storage, and UpdraftCentral key creations) will no longer be available and can cause a fatal error when running on PHP 5.2
* TWEAK: Add a link to Trustpilot in the review prompt
* TWEAK: Added a warning message when the WP_HTTP_BLOCK_EXTERNAL is defined and set to true
* TWEAK: Added the "Copy to clipboard" button under the self-hosted central option
* TWEAK: File size is shown when pressing on the backup entity
* TWEAK: Fix the restore dialog to not display "plugins" checkbox when only there's "mu-plugins" entity
* TWEAK: Fixed PHP 8.2 deprecation messages caused by a null value being passed to the rtrim() function
* TWEAK: Resolve PHP deprecations for the dynamic property access by declaring the variables in the class
* TWEAK: Includes the plugin.php file path if "get_mu_plugins" function does not exist.
* TWEAK: Provide default options for function UpdraftPlus::backup_all()
* TWEAK: Add and call the `litespeed_finish_request()` function to ensure the HTTP connection made from the browser gets closed immediately without having to wait the process to complete thus leaving it run in the background
* TWEAK: Ensure no PHP "Class not found" is showing up during credentials testing
* TWEAK: Add type checking in UpdraftPlus::handle_url_actions() to prevent plugin conflicts causing PHP errors on PHP 8+
= 1.23.10 - 05/Sep/2023 =
* TWEAK: New S3 signature version setting is added to the S3-Compatible (Generic) configuration form, giving an opportunity for the user to choose which signature version to use (SigV2 or SigV4)
* TWEAK: Enable PHP 8.3 (see: https://stitcher.io/blog/new-in-php-83) support in UpdraftClone
* TWEAK: Adjust fread() sizes for better performance when uploading an archive via the widget
= 1.23.9 - 14/Aug/2023 =
* FIX: Fatal error of Uncaught ArgumentCountError when the UpdraftPlus settings page is browsed from an IP-adressed site (i.e. no hostname) on PHP 7.1+
* FIX: Incorrect caching mechanism such that when multiple Google Drive storage back-ends were in use (Premium feature), uploading to a storage would fail due to unmatched folder ID taken from a different storage instance
* TWEAK: Define class properties in UpdraftPlus_Addons_Migrator class for PHP 8.2 compatibility
= 1.23.8 - 08/Aug/2023 =
* FEATURE: Given the basic migration feature in the free plugin
* FIX: Content-MD5 and any V2-related headers were always included in the S3's V4 SignedHeaders even though the headers were not presented in a HTTP request
* FIX: Generating URL-encoded queries for a canonical request should have used a method/mechanism which encoded query values according to RFC 3986 (for consistency and for not breaking the code)
* FIX: Search / replace database not working on Admin dashboard > Settings > UpdraftPlus Backups > Advanced Tools > Search / replace database on PHP 8.2 due to stricter type checking
* FIX: A newly added subsite that was restored from a normal site to the multisite was not listed in the site list in the multisite
* FIX: Manual deletion of backup sets appeared to skip some files when multiple instance and/or remote storage were in use
* FIX: The SFTP remote storage stopped working in the UpdraftPlus 2.23.6 release. Reverted the change "TWEAK: Validate SFTP key field on credential test and before save"
* TWEAK: Add a warning in the log file if AWS connection fails and a TLSv1.2 connection test fails
* TWEAK: Add warning for user if only PclZip available
* TWEAK: Fix unable to switch tab when a plugin (wrongly) loads certain CSS onto UD's settings page
* TWEAK: Remove the word 'apparently' in the backup success message
* TWEAK: Update to latest phpseclib 1.0.X version (prevents deprecation notice on PHP 8.1+)
* TWEAK: Change "s3" property to "public" in UpdraftPlus_AWSRequest class for PHP 8.2 deprecation compatibility
* TWEAK: Fixed Missing/ broken links for the pCloud image in addons tab
* TWEAK: Buying UpdraftClone tokens through inline checkout
* TWEAK: Fixed Spelling errors in updraftplus repo
* TWEAK: Added save button at the top of setting tab content
* TWEAK: UpdraftCentral module now, by default, overwrites the same existing theme installed on the remote sites (if any), regardless of what version is currently installed or what version being uploaded and installed
* TWEAK: Define class properties in Updraft_Checkout_Embed class for PHP 8.2 deprecation compatibility
* TWEAK: Update the composer package yahnis-elsts/plugin-update-checker for PHP 8.2 compatibility
* TWEAK: Added username and email details for authenticated dropbox account in updraftplus settings
* TRANSLATIONS: Split sentences to make one sentence in any translation functions
= 1.23.7 - 04/Jul/2023 =
* FIX: When Dropbox returns an error, this error was not always correctly passed up to the logging layer
* FIX: Search / replace database not working on Admin dashboard > Settings > UpdraftPlus Backups > Advanced Tools > Search / replace database on PHP 8.2 due to stricter type checking
* FIX: The SFTP remote storage stopped working in the UpdraftPlus 2.23.6 release. Reverted the change "TWEAK: Validate SFTP key field on credential test and before save"
* TWEAK: Fixed Missing/ broken links for the pCloud image in addons tab
* TWEAK: Buying UpdraftClone tokens through inline checkout
* TWEAK: Prevent PHP warning during some migrations when no table list provided
= 1.23.6 - 19/Jun/2023 =
* FIX: Search / replace database not working on Admin dashboard > Settings > UpdraftPlus Backups > Advanced Tools > Search / replace database on PHP 8.2 due to stricter type checking
* TWEAK: Remove the incremental dropdown on incremental backup restore when the user selects only the database to restore
* TWEAK: Validate SFTP key field on credential test and before save
* TWEAK: Remove the unused UpdraftPlus_S3::getHttpUploadPostParams() method
* TWEAK: Attempt to workaround some web hosts' opcode cache producing incorrect error upon upgrade
* COMPATIBILITY: Fix pCloud deprecated warning in PHP 8.2
* COMPATIBILITY: Fix Google Cloud deprecated warning in PHP 8.2
* COMPATIBILITY: Fix Google Drive deprecated warning in PHP 8.2
* TWEAK: Fixed issue with cron jobs not clearing after wiping settings
* TWEAK: Added link to WP-Optimize in the database size tab in the advanced tools
= 1.23.4 - 16/May/2023 =
* SECURITY: Fixed a missing nonce combined with a URL sanitisation failure, which could lead to a targeted XSS opportunity (if an attacker persuades a logged-in administrator to both re-authorise their connection to a remote storage (e.g. Dropbox) and then to follow a link personally crafted for their site before re-authorising whilst logged in, he can then store a fixed JavaScript payload in the WP admin area (they would need a further route to use that ability to cause any damage). Because of the need for the administrator to co-operate in multiple steps, this attack is very unlikely (but you should of course still update).
* FIX: DigitalOcean S3-compatible storage does not work with disabled SSL entirely where possible settings.
* FIX: If there was an error or network connectivity issue on first attempt of uploading a plugin/theme file, then the second attempt of uploading the same file would make the file become corrupted thus resulting in installation failure.
* COMPATIBILITY: Suppress htmlspecialchars deprecation warnings on PHP 8.1
* COMPATIBILITY: Suppress some PHP 8.2 deprecation notices from use of ${} style variables, and others from use of dynamic properties
* TWEAK: Handle web hosting company setup that disabled pclose() but not popen()
* TWEAK: All HTTP requests to the Google Drive API now, by default, forces to use HTTP/1.1 version. Also, a constant named UPDRAFTPLUS_GDRIVE_CURL_HTTP_VERSION can be set in the wp-config.php file to change the default HTTP version to another preferred version
* TWEAK: Improve 'move' and 'copy' filesystem functions in restoring directories containing files to a different mount point/partition than where they reside
* TWEAK: Improve files pruning mechanism, by not repeating already-done ones when resuming deletions
* TWEAK: Improve the Handlebars templates of the Google Drive, Dropbox and UpdraftVault remote storage modules by taking PHP code out of them
* TWEAK: Improve widget layout when decrypting a backup
* TWEAK: Remove Bootstrap CSS in Restore Wizard and replace with Flexbox CSS
* TWEAK: Add multisite subsites header information to the database backup file that will be used for converting a network subsite to a standalone normal WordPress site
* TWEAK: Add the UpdraftPlus plugin slug header to the database backup file
* TWEAK: Include next-level-up directory path along with deleted folder's name when deleting a folder
* TWEAK: Update seasonal notices
* TWEAK: Make common logic for getting backup history from the database
* TWEAK: Remove usage of the file_get_contents() function from WebDAV remote storage without chunking upload
* TWEAK: Pass through some previously unhandled Dropbox error codes
* TWEAK: Added the "non-core" word to the WordPress database tables excluded warning.
* TWEAK: Remove WordPress core tables from the non-core WordPress database tables excluded list in restoration step 2
* TWEAK: When migrating the www site, the search replace will be performed in database tables on the non-www domain too, and vice versa
= 1.23.3 - 16/Mar/2023 =
* SECURITY: This release fixes an important security defect - please update. Full details: https://updraftplus.com/updraftplus-1-23-3-2-23-3-important-security-release/. Sites are affected if there are WordPress users (i.e. people who can login) who can reach the back-end (i.e. wp-admin) dashboard (but we recommend everyone updates in any case).
= 1.23.2 - 15/Mar/2023 =
* FIX: Automatic backups before updating a plugin, theme, or WP core were not working (regression in 1.23.1)
* FIX: A database backup couldn't be taken from WP-Optimize and All-In-One Security (AIOS) (regression)
* TWEAK: Add a user capabilities check when downloading a backup (this is not believed to have any security implications, as the download operation already requires knowledge of a further nonce that there is no mechanism for a non-administrator to obtain).
* TWEAK: Improve the Handlebars template of the UpdraftVault remote storage by taking PHP code out of it
* TWEAK: Prevent making a nonce available to logged-in users who could not manage UpdraftPlus (this did not give access to any unauthorised actions)
* TWEAK: Improve the Handlebars template of the UpdraftVault remote storage by taking PHP code out of it
* TWEAK: Improve the Handlebars template of the pCloud remote storage by taking PHP code out of it
= 1.23.1 - 08/Mar/2023 =
* FEATURE: Support Cloudflare R2 as a generic S3 storage provider (always use v4 signature)
* FEATURE: Added the ability to get an accurate row count for all tables in the advanced tools
* FEATURE: Expose an option in the UI to disable chunked uploading when using WebDAV remote storage (previously required a constant)
* FEATURE: Add the ability to anonymize WooCommerce order data when cloning a site
* FIX: An over-ride enforcing use of V4 signatures on Aliyuncs S3 storage was no longer working
* FIX: pCloud error handling in chunked uploading did not pass the error message up to the logging layer
* FIX: Backups started under WP-CLI could not backup the database only without any files
* FIX: Couldn't add any file/directory inclusion for "Other" entity due to access to one directory up from the current (ABSPATH) isn't permitted
* FIX: Atomic restore is not renaming a few tables when not restoring specific tables by using the filter `updraftplus_restore_this_table`.
* FIX: Sometimes the "delete old directories" notice displayed even though the actual `-old` directory didn't exist
* FIX: The restore point date time was incorrect in the restore screen when restoring the incremental backup, and the WordPress site has a non-GMT timezone set.
* TWEAK: Improve manual rescanning and deletion of backup sets by setting up a time limit to a value defined in UPDRAFTPLUS_SET_TIME_LIMIT constant to minimise chances of getting fatal error (maximum execution time exceeded)
* TWEAK: Add a filter updraftplus_mysqldump_arguments to allow changing of arguments passed to the mysqldump binary when that is being used
* TWEAK: Include PHP version in default S3 user agent to aid debugging
* TWEAK: Disable Gravatar on UpdraftClone
* TWEAK: Cleanup .list.tmp files when a cloud backup completes
* TWEAK: Use the function that lists our own cron schedules to simplify the way backup intervals are prepared and to avoid schedules mismatch
* TWEAK: Improve manual deletion of backup sets by setting up a time limit to a value defined in UPDRAFTPLUS_SET_TIME_LIMIT constant to minimise chances of getting fatal error (maximum execution time exceeded)
* TWEAK: Improve the Handlebars template of the S3-Compatible (Generic) remote storage by taking PHP code out of it
* TWEAK: Increase max_recursion value to 20 in class-search-replace.php
* TWEAK: Add a new function that lists our own cron schedules so that it can later be used as schedules sorting purpose also as a main source from which our schedules list is originated
* TWEAK: Display Google drive email address along with account holder name
* TWEAK: Fixed WebDAV PHP 8.1+ deprecated warnings
* TWEAK: Updated text message displayed on Web Server - Localhost UC Dashboard Key Creation.
* TWEAK: Use nonce in every part of a restoration process to prevent direct access that has allows an unwanted log file to be begun. On sites running on end-of-lifed PHP versions (<8.0) it was possible to read the beginning of the log file, causing an unintended information disclosure about the server environment, e.g. Apache version, PHP version and available memory (but current PHP versions are not vulnerable).
* TWEAK: Use nonce when starting a new restoration and strengthen the continuation process to prevent direct access that has the potential of being file and/or log abuse
* TWEAK: Improve the WebDAV storage module API in regard to the way it handles uploading and writing files
* TWEAK: Replace the word "Directory" with "Folder" in UI notices
* TWEAK: UpdraftVault: select storage class intelligently
= 1.22.25 - 16/Dec/2022 =
* FIX: Resolves a fatal error that occurred if a user had one specific add-on and not another (i.e. paid versions only)
= 1.22.24 - 14/Dec/2022 =
* FEATURE: Support PHP 8.2 in UpdraftClone
* FEATURE: pCloud protocol support (Premium)
* FIX: Add missing support for custom Dropbox app refresh tokens
* FIX: After sending email report, other emails that follow would contain leftover data from the previous email report
* FIX: Javascript hook that is used to show "Automatic backup before update" dialog box when pressing "Install Update Now" button on the WP Plugins page had made the same button on WP Updates page not respond to a press
* FIX: Potentially not storing the size of new files in the backup history
* FIX: Pressing "Rescan remote storage" using WebDAV can show an error message
* FIX: Prevent a fatal error when logging PHP events using the exported "central" folder on the remote site
* FIX: Prevent an error that occurs on WordPress 6.1 when managing and creating post/page from UpdraftCentral
* FIX: Prevent fatal error when rescanning if internal directory was unusable
* TWEAK: Ability to permanently dismiss Litespeed warning
* TWEAK: Add admin notice to inform the user to upgrade their PHP to version 5.3 or higher due to changes in phpseclib requirements in future releases
* TWEAK: Add "#[\ReturnTypeWillChange]" attribute to Google Drive API for suppressing PHP 8.1 deprecation notices
* TWEAK: Add the ability to anonymize personal data in the database backup when using migrator
* TWEAK: Advise users if files in the plugin are missing
* TWEAK: Discourage page caches from caching UpdraftClone intermediate pages
* TWEAK: "Dismiss from main dashboard" button sometimes doesn't work
* TWEAK: Fix missing FTP admin notices when clicking on other remote storage method
* TWEAK: Hive off the AWS S3 SDK into a separate plugin (UpdraftPlus now always uses its own, more lightweight, SDK) - https://github.com/DavidAnderson684/updraftplus-aws-sdk
* TWEAK: Improve the Handlebars template of the Amazon S3 remote storage by taking PHP code out of it
* TWEAK: Improve the Handlebars template of the DreamObjects remote storage by taking PHP code out of it
* TWEAK: Improve wording in plugin by removing ambiguous wordings
* TWEAK: Increase the Google Cloud (Premium) downloading minimum chunk size for faster downloads
* TWEAK: In Premium / Extensions tab add notices for AIOS and Easy Updates Manager
* TWEAK: Log the list of blocks that failed to re-assemble in Microsoft Azure.
* TWEAK: Make the Google Drive downloading algorithms adapt to available memory - cut the total download time by 2/3 in testing
* TWEAK: Prevent a PHP notice upon UpdraftClone startup
* TWEAK: Prevent deprecation notice on PHP 8+ if opening a zero-size zip file
* TWEAK: Replace the use of $_SERVER['SERVER_NAME'] variable with network_site_url() function because the array key is not defined in WP-CLI and might not be defined on some server-side cron tasks, resulting in a PHP log message
* TWEAK: Set a global context for $wp_file_descriptions context so that it gets assigned to correctly, preventing a subtle visual change in the theme editor
* TWEAK: Use built-in logging for WebDAV
* TWEAK: WP Rocket - disable CDN upon migration completion for multisite since key will be invalid
= 1.22.23 - 29/Sep/2022 =
* FIX: Fix "More Files" tracking on resumption
* FIX: Parse error when loading plugins and themes in UpdraftCentral. Error occurs when UpdraftPlus is installed in a system with PHP 5.6 or older.
* FIX: BinZip did not handle out-of-tree directory symlinks. These are now backed up as expected.
* FIX: When expired tokens occur during Vault uploads, reschedule and resume, to avoid incomplete pruning of backup history
* FIX: Inconsistent WebDAV host field behaviour where there are multiple WebDAV storage locations
* FIX: The Exclusion rule link text was broken when "uploads" and "wp-content" exclusion settings were initially in an unchecked state
* TWEAK: Create IAM call methods in UpdraftPlus_S3
* TWEAK: Add a select all / deselect all selector to the table list when restoring
* TWEAK: Do not write `SET @@GLOBAL.GTID_PURGED` statements
* TWEAK: Improve the upload after create status reporting in the progress widget
* TWEAK: If a symlink pointed to an inaccessible location, this was silently skipped when using ZipArchive; it now generates a warning.
* TWEAK: Cast the service list to an array in upload_button() to avoid a potential PHP error with PHP 8
* TWEAK: Quadruple size of buffer when reading from files for S3 chunks
= 1.22.22 - 16/Sep/2022 =
* FIX: Restrict the CSS scope for our jQuery to prevent conflicts
* FIX: UI bug when unable to download a database for restoration and then retrying before refreshing the page
* TWEAK: Add basic design to confirmation window when adding a site to UpdraftCentral
* TWEAK: Prevent a PHP coding deprecation warning on PHP 8.1
* TWEAK: Feedburner URLs now are case-sensitive
* TWEAK: Improve the Handlebars template of the Rackspace Cloud Files remote storage by taking PHP code out of it
* TWEAK: WP Rocket - disable CDN upon migration completion since key will be invalid.
* TWEAK: Improve the UpdraftClone user-visible feedback and logging on delay or failure conditions
* TWEAK: WebDAV refactor part 2: Eliminate the stream-wrapper layer
= 1.22.21 - 09/Sep/2022 =
* FIX: Infinite recursions/loops appeared to happen in restoration during the search-replace operation especially when some tables had a circular reference in their serialised data
* FIX: Prevent PclZip from restoring empty/corrupt archives
* FIX: Zip file sizes had ceased to be recorded in the backup history
* FIX: Fix fatal error when loading the "Advanced Tools" section for UpdraftCentral
* TWEAK: Log intermediate unzip errors before proceeding with different method
= 1.22.20 - 05/Sep/2022 =
* FEATURE: Restore the "upload immediately after creation" feature that was turned off whilst misbehaviour was investigated; fixes have been applied.
* FIX: Prevent premature removal of zip manifest files
* TWEAK: Improve the Handlebars template of the OpenStack (Swift) remote storage by taking PHP code out of it
* TWEAK: Do not run out-of-place "SET @@GLOBAL.GTID_PURGED" statements upon restore
= 1.22.19 - 29/Aug/2022 =
* TWEAK: The "upload immediately after creation" feature has been disabled whilst reports of incorrect behaviour are investigated
* TWEAK: Replace require_once to include_once and use the UpdraftCentral path constant when loading the UpdraftCentral host class.
* TWEAK: Modify the "overdue crons" message for greater clarity
= 1.22.18 - 26/Aug/2022 =
* TWEAK: Suppress pre-loading of phpseclib libraries, which has exposed fatal-error inducing bugs in a handful of unmaintained third-party plugins and themes
* TWEAK: Increase the number of conditions for which attempts to access an S3 bucket will result in more logging
= 1.22.17 - 23/Aug/2022 =
* FIX: Ensure jobdata is saved before attempting a partial cloud upload, preventing potential omission of an archive
* FEATURE: Restore the "upload immediately after creation" feature that was turned off in 1.22.16 whilst misbehaviour was investigated
* TWEAK: Add log information as to why DB stored routines couldn't be included in the backup if that should be so
* TWEAK: Declare some implicitly-declared class variables to avoid warnings in PHP 8.2
= 1.22.15 - 22/Aug/2022 =
* FEATURE: Each archive created will now be uploaded immediately directly after creation, to save disk space (prior behaviour was to first create all archives)
* FIX: Improve parsing of HTTP response code header with generic S3 providers to avoid incorrectly interpreting status code
* FIX: When an S3 service returns a RequestTimeTooSkewed error, make sure this is passed up to the user and not lost
* FIX: Do not prematurely trigger upload_complete message when performing immediate file upload during clone operation
* FIX: Database views don't get restored or are not restored correctly when in atomic mode
* FIX: After sending email reports, other emails that follow used the same From address/name taken from the previous email
* FIX: Database views don't get included in the backup
* TWEAK: Improve the Handlebars template of the Microsoft Azure remote storage by taking PHP code out of it (Premium)
* TWEAK: Update WebDAV library used for WebDAV remote storage (Premium) - N.B. This now requires PHP 5.5+.
* TWEAK: Improve the Handlebars template of the Google Cloud remote storage by taking PHP code out of it (Premium)
* TWEAK: Improve the Handlebars template of the Microsoft OneDrive remote storage by taking PHP code out of it (Premium)
* TWEAK: Detect and break absurdly-future locks
* TWEAK: Restrict the CSS scope for our jQuery to prevent conflicts
* TWEAK: Work around consequences of a backup history save failure
* TWEAK: Add a twice-daily cron to clear temporary files so that they are cleared even in the absence of new backups beginning and prior backup completion failure
* TWEAK: Tweak UpdraftCentral abstraction classes
* TWEAK: Separate custom font rules when retrieving styles from remote sites
* TWEAK: Prevent PHP deprecation notice when using Google libraries on PHP 8.1+
* TWEAK: Simplify Dropbox SDK by removing unused "response format" code
= 1.22.14 - 07/Jul/2022 =
* FIX: Selective table restore
* FIX: Fix restore button JS issue when importing single site to multisite
* TWEAK: Allow charset to be set during a WP_CLI restore
* TWEAK: Use similar charset if one is not set and not supported during a WL_CLI restore
* TWEAK: Add bulk process handler for UpdraftCentral's plugin and theme modules
* TWEAK: Return previous plugin and theme states before installation or activation
* TWEAK: Improve the Handlebars template of the Backblaze remote storage by taking PHP code out of it (Premium)
* TWEAK: Improve the Handlebars template of the WebDAV remote storage by taking PHP code out of it (Premium)
* TWEAK: Improve the Handlebars template of the SFTP/SCP remote storage by taking PHP code out of it (Premium)
* TWEAK: Avoid using 'phpmailer_init' action when setting up sender name and sender email address, as some SMTP plugins override the 'wp_mail()' function and they don't bother to call the 'phpmailer_init' action
* TWEAK: Prevent increments being added to backups from other sites
= 1.22.13 - 25/May/2022 =
* FEATURE: Added the ability to create a clone from WP-CLI (Premium)
* TWEAK: Free version – Improve the Handlebars template of Azzure, OneDrive, WebDAV, SFTP/SCP, Blackblaze, and Google Cloud remote storage by taking PHP code out of them
* TWEAK: Update notice class
* TWEAK: Escape URL used in remote storage connection modal
* TWEAK: A Label being incorrectly displayed when creating a clone
* TWEAK: Update class-udrpc
* TWEAK: Don't show database selective restore UI if no tables are found in the database scan
* TWEAK: Allow drag-dropping of backup anywhere, not just on target area
* TWEAK: Add "echo" to display the premium link properly in some templates
* TWEAK: Update the posts class to support theme.json config file for theme styles and block settings
* TWEAK: Extract from plugin's data rather than relying on its key when retrieving the plugin slug
* TWEAK: Increase likelihood of using experimental upload-sooner feature from 1% to 5%
= 1.22.12 - 29/Apr/2022 =
* FEATURE: Added the ability to select which themes and plugins to Restore
* FEATURE: Allow existing local backups to be sent to a remote site when migrating
* TWEAK: Tweak to allow the Amazon S3 setup wizard to run if the internal S3 library is active
* TWEAK: The WordPress sidebar menu overlaps the popover tour box
* TWEAK: Attempt to upload a zip file after it's been created to save on storage space
* TWEAK: Add MySQL maximum packet size to Advanced Tools -> Site Information
* TWEAK: Only output the expected table rows when starting to process the table
* TWEAK: Fix get_users parameter that has been deprecated on WP 5.9 in UpdraftCentral posts controller.
* TWEAK: Do not call escapeshellarg() for SCP if we know it is unnecessary (prevents problems on hosts lacking the function for trivial use cases)
* TWEAK: Detect change of run-time environment on first resumption and re-set previously detected resumption interval if likely to be helpful
* TWEAK: Improve the FTP Handlebars template by taking PHP code out of it
* TWEAK: Convert HTTP error codes to their meanings
* TWEAK: Some plugins are loading their own incomplete mcrypt_* functions try and detect this and recover
* TWEAK: Ensure the local backup file is cleaned up if an earlier failed remote storage upload later succeeds
* TWEAK: Include plugin version when getting details from UpdraftPlus Vault to allow features that depend upon a sufficiently up-to-date version
= 1.22.11 - 15/Mar/2022 =
* FIX: Internal S3 library did not correctly construct canonical query string with v4 signatures if there were multiple parameters, leading to wrong signatures and failed authorisation
* FIX: Fix a recent regression that caused DNS hostnames to not be preferred when using Amazon S3
* TWEAK: Prevent deprecation notice on PHP 8.1 if opening a zero-size zip file
* TWEAK: Introduce filter updraftplus_dropbox_fetch_curl_options for easier debugging/experimentation
= 1.22.10 - 11/Mar/2022 =
* FIX: Fix a regression in the 1.22.9 adjustment to the internal S3 library's evaluation of when to use a Host: header
* FIX: Fix a long-standing issue whereby if S3-related credentials were being tested via the front-end UI, and multiple back-end instances were present, then the wrong settings could be used in making decisions on Host: headers
= 1.22.9 - 10/Mar/2022 =
* SECURITY: Fixed a failure to sanitise printed URLs properly, leading to a targeted XSS opportunity (if an attacker persuades a logged-in admin to follow a link personally crafted for their site, he may be able to run JavaScript inside the browser - but on our testing, this ability is limited due to the sanitisation that was there - we have not been able to confirm that a payload causing damage is possible). Reported by Taurus Omar - https://taurusomar.com.
* TWEAK: Adjust internal S3 library's evaluation of when to use a Host: header (improves compatibility with buckets with minimal access rules)
* TWEAK: Adjust algorithm concerning likelihood of switching S3 libraries to accelerate deployment
* TWEAK: Prevent PHP notice when using S3 with particular bucket naming and SSL
= 1.22.8 - 03/Mar/2022 =
* FIX: Do not attempt to use S3 DNS-style bucket naming in alternative library if SSL validation will fail due to AWS certificate wildcard policies or other bucket naming-related reasons
* TWEAK: Add version number to alternative S3 library requests
= 1.22.7 - 01/Mar/2022 =
* FIX: Internal S3 library was missing a method for using session tokens together with Vault
* FIX: Various UI issues with the S3 IAM Wizard
* TWEAK: Use AWS SDK/Guzzle for S3 operations if Curl is not available
* TWEAK: Prevent coding deprecation notice during S3 upload on PHP 8.1
= 1.22.6 - 26/Feb/2022 =
* FIX: Internal S3 library had regressed in its ability to detect bucket location on AWS when using v4 signatures
* TWEAK: When using S3 APIs, log the class used for easier debugging
* TWEAK: Change S3 SDK selection algorithm
= 1.22.5 - 24/Feb/2022 =
* FIX: An issue that prevented being able to browse the contents of an already downloaded backup zip file
* FIX: Add previously unbundled AWS SDK file for IAM service description which prevented S3 wizard in the Premium version working correctly
* FIX: Prevent a fatal error when handling some S3 errors, caused by a format change
* TWEAK: When loading AWS SDK at upload time, apply some work-arounds for plugins with buggy or old versions of related libraries
* TWEAK: Update to latest AWS SDK toolkit, fixing an error with error-reporting in some situations in the previous version
* TWEAK: Remove vendor/aws/aws-crt-php/run_tests.bat from build (apparently one user's hosting does not allow .bat files), plus other unnecessary files from that package
* TWEAK: Enable PHP 8.1 in UpdraftClone (N.B. not yet officially supported by WordPress, so, made available for testing/development purposes)
* TWEAK: Prevent error emitted on the browser console when 'Images' filter is selected on UpdraftCentral's media module
= 1.22.4 - 17/Feb/2022 =
* TWEAK: Prevent a couple of possible fatal errors when printing autobackup options on PHP 8
* TWEAK: Work around a bug in the JetPack autoloader that was triggered when projects using that also used Guzzle in a different namespace
= 1.22.3 - 15/Feb/2022 =
* SECURITY: Thanks to Marc-Alexandre Montpas of Automattic for this report (CVE: CVE-2022-23303). All versions of UpdraftPlus from March 2019 onwards have contained a vulnerability caused by a missing permissions-level check, allowing untrusted users access to backups. If your site does not have non-admin users, or if your non-admin users are all trusted (and your site does not allow users to sign up themselves), then you are not vulnerable (but we always recommend updating to the latest version in any case). Please see https://updraftplus.com/updraftplus-security-release-1-22-3-2-22-3/ for more details.
* FIX: Unexpected 'Backup History' array structure during the rescanning of the new backup sets that changed the type of the database associative keys from string to array format
* FIX: Failure in excluding and wiping out jobdata during backup and restore causing the same backup to repeat under certain circumstances
* REFACTOR: Upgrade AWS SDK from version 2.8 to 3
* TWEAK: Improve how log file and backup file attachments are handled through mail-related functions, so they don't get omitted by some 3rd party SMTP plugins
* TWEAK: Overcome PHP 8 'Only the first byte will be assigned to the string offset' warning when rescanning local folder and/or remote storage for new backup sets
* TWEAK: On Windows, when mysqldump.exe binary is in use for backing up database, it failed to exclude updraft_jobdata_* entries due to 'escapeshellarg' function that replaces % char to white space
* TWEAK: Switch to official jstree release now that our patch is included
* TWEAK: Update updater library in paid version to current release
* TWEAK: In the multisite add-on, store the last log message separately to perform better with binary logging together with large backups
* TWEAK: Add Google branding to the Google Drive authentication link
* TWEAK: Change complex formatting string to avoid translator errors resulting in PHP errors
= 1.22.1 - 14/Jan/2022 =
* TWEAK: New versioning scheme; the second part of the version number was previously not used very meaningfully/systematically; together with the third, it now indicates the year of release and number within that year
* TWEAK: Adjust run-time performance check, removing one test that was no longer appropriate
* TWEAK: Adjust next resumption display message if there isn't one
* TWEAK: Cache the UpdraftVault quota to reduce the amount of network calls made during long backups
= 1.16.69 - 27/Dec/2021 =
* FIX: A bug that prevented a final resumption from attempting to split the zip to make progress
* FIX: Handle LOCK TABLES statements produced by some mysqldump versions properly in case of atomic restores
* SECURITY: Fix a non-persistent XSS error allowing an attacker to once run JavaScript in your web browser if you clicked on a link crafted personally for you whilst logged into your site (very similar to that fixed in 1.16.65/6). A packaging error meant that this was not properly fixed in the 1.16.67-68 releases.
* TWEAK: Search and replace ABSPATH if it's changed, non-trivial and stored in the DB by a bad plugin/theme
* TWEAK: Make whole label for "UpdraftPlus temporary clone user login settings" clickable
* TWEAK: Change wording for an advanced tool for clarity
* TWEAK: Include UD in user agent for S3 calls when using the AWS SDKs
* TWEAK: Make sure WP_Error is passed up during specific plugin update failure case
= 1.16.66 - 29/Nov/2021 =
* SECURITY: The fix made in 1.16.65 was faulty; this release corrects it.
= 1.16.65 - 25/Nov/2021 =
* SECURITY: Fix a non-persistent XSS error allowing an attacker to once run JavaScript in your web browser if you clicked on a link crafted personally for your site whilst logged into it. Discovered by Krzysztof Zając.
* TWEAK: Premium - add review link at bottom of admin
= 1.16.64 - 24/Nov/2021 =
* FIX: Do not create a zip manifest file if the zip is still potentially incomplete
* TWEAK: Improve Dropbox downloading performance by reducing round-trips, by eliminating unnecessary chunking
* TWEAK: Update certificate store to current list
* TWEAK: Increase precision of previous check-in record in log
= 1.16.63 - 25/Oct/2021 =
* FIX: Use correct zip file name when creating manifest
* TWEAK: Tweak the response data of UpdraftCentral's plugin and theme handlers to add additional error information
* TWEAK: Moved the raw backup history command so it can be accessed via UpdraftCentral
* TWEAK: Optimise away unnecessary file open/read/close cycle on null gzip files when writing the final database dump (should help on enormous sites with thousands of tables)
* TWEAK: Cleanup .list.tmp files when a local backup completes
* TWEAK: Refactor WebDAV addon code for future improvements
= 1.16.62 - 30/Sep/2021 =
* FIX: Fix UpdraftCentral error when installing plugin or theme on a slow connection
* TWEAK: Support wildcard (asterisk char) exclusions not just for the first/top-level directory but also for the 2nd level directories and below
* TWEAK: Fix deprecation warning on UpdraftCentral's comment settings
* TWEAK: Algorithm improvement with small tables with individually large rows not triggering the existing over-sized rows algorithm, to reduce fetch size quicker
* TWEAK: Implement the newly abstracted host plugin usage/process within the UpdraftCentral client code
* TWEAK: Improve backtrace logging
* TWEAK: Add admin and log warning messages regarding the planned shutdown of Microsoft Azure and OneDrive Germany
* TWEAK: Output UpdraftVault quota recount link if needed
* TWEAK: Introduce constant: UPDRAFTPLUS_LOG_BACKUP_SELECTS: Defining this to true will cause the SQL SELECT commands used when fetching data for a database table backup to be logged in the UpdraftPlus backup log
* TWEAK: Don't change SQL modes if a null value is returned
* TWEAK: Existing backups paging logic to avoid a confusing rescan user experience
* TWEAK: Refactor the search and replace engine
= 1.16.61 - 28/Aug/2021 =
* FIX: If MySQL performance was very fast on large tables, and if fallback fetch mode was being used (which should not occur on any WordPress core table, but can be triggered on recent Oracle MySQL 8.0 versions), then when increasing rows fetched on large tables, some rows could be unintentionally skipped.
* TWEAK: Oracle MySQL 8.0 from somewhere after 8.0.17 has removed the display width from the response to SHOW CREATE TABLE, resulting in failure (prior to this tweak) to detect a primary key type that can be used with faster fetching
* TWEAK: Use 'wp_mail_failed' action hook to improve logging of email delivery failures caused by a PHPMailer exception
* TWEAK: Add additional log information to themes and plugins modules
= 1.16.60 - 23/Aug/2021 =
* FIX: An issue that prevented the more files restore UI appearing if it was part of an incremental backup
* FIX: Add an extra check to prevent incremental backups from being run after a migration, if incremental backups are not enabled.
* TWEAK: Add method to check whether an image editor is available for UpdraftCentral's image media editing feature.
* TWEAK: In the reporting add-on accept URLs, if the address is a URL then instead of emailing it, POST it to that URL using the format used by Slack
* TWEAK: Add a link to the create clone UI to explain the various clone package sizes
* TWEAK: Record ABSPATH in the summary
* TWEAK: Prevent a couple of unwanted logging notices on PHP 8
* TWEAK: Catch and deal with various WebDAV exceptions
* TWEAK: Create a zip file manifest and read from it if available
= 1.16.59 - 16/Jul/2021 =
* FEATURE: (Paid versions) New WP-CLI command (connect) to connect plugin with the user's associated account/licence on updraftplus.com
* FIX: Each time the 'Upload Backup' dialog is opened, '(already uploaded)' text is appended one more time for the same remote storage resulting in it being nearly impossible to have the two buttons shown at the bottom
* TWEAK: Enhanced over-sized row-detection to include any table with a primary key and a LONGTEXT
* TWEAK: Log file now includes max packet size
* TWEAK: Properly handle port numbers included in DB_HOST when using mysqldump
* TWEAK: Handle UNIX socket paths included in DB_HOST when using mysqldump
* TWEAK: Increase default mysqldump maximum packet size
* TWEAK: Change WebDAV request library to HTTP_Request2
* TWEAK: Add custom category sorting on post module using uasort due to deprecation warning emitted on UpdraftCentral
* TWEAK: Added an icon within the top-right of the log widget allowing user to toggle that part between its current size and full-screen of the restoration log section
* TWEAK: Prevent an error in the phpinfo advanced tool when handling non-string constants
* TWEAK: Escape remote storage IDs in output templates
* TWEAK: Suppress unwanted error logging related to Gravity Forms
* TWEAK: Clear Elementor cache at the end of restoration process (if possible) giving an opportunity for Elementor to regenerate CSS files on the next page load request
* TWEAK: Clear Avada/Fusion-related CSS cache at the end of restoration process (if relevant)
* TWEAK: Catch and recover from errors and exceptions when clearing third-party caches
* TWEAK: Prevent a PHP logging notice when an SCP server is scanned for files
* TWEAK: Remove unused CloudFront methods from S3 library
* TWEAK: Added missing anonymisation.png graphic and detail of Anonymisation addon in the addons list table
* TWEAK: Added Update URI header field to avoid accidentally being overwritten with an update of a plugin of a similar name from the WordPress.org Plugin Directory.
* TWEAK: Improvements in finding a working mysqldump binary during a backup operation
* TWEAK: Start on larger chunk sizes when fetching *meta table contents, and scale up chunk sizes on all tables dynamically (less SQL queries; but testing shows it makes little difference to overall speed)
* TWEAK: Adjust Google Drive to retry once after a UDP_Google_IO_Exception, as was done in Google Cloud - intended to help with intermittently buggy Curl versions
* TWEAK: Show a notice when attempting to download a backup from email remote storage explaining nothing can be downloaded
* TWEAK: Update shop links and upgrade prompts
= 1.16.58 - 27/May/2021 =
* FIX: UpdraftVault storage settings saving issue on multisite
* FIX: Translation undefined index issue while running updates on UpdraftCentral
* FIX: Do not retain SFTP/SCP connection object between upload and prune stages, fixing a multi-instance bug that could cause deleting of obsolete archives to be skipped when backing up the same backup to multiple SCP servers
* TWEAK: When a link points to an unreadable file, include information in the log about the original reference
* TWEAK: Do not compress and recompress intermediate table files when stitching together the final database dump (increases speed and reduces resource usage)
= 1.16.57 - 08/May/2021 =
* FIX: Backblaze infinite loop when listing on buckets with huge numbers of objects
* TWEAK: Minor improvements to the organisation of the S3-provider classes (abstract per-backend logic more cleanly)
* TWEAK: Add --no-tablespaces switch to mysqldump invocation (required on MySQL 8.0+)
= 1.16.56 - 29/Apr/2021 =
* FIX: Revert changing of Amazon S3 authentication error handling in 1.16.55, which broke support of S3-compatible providers
* TWEAK: Remove some unnecessary methods from the UpdraftPlus_S3 class
= 1.16.55 - 28/Apr/2021 =
* FIX: Wrong prefix being used on non WP tables during an atomic restore
* FIX: Issue that prevented generic (non-UpdraftPlus) SQL databases being restored
* TWEAK: JSTree file selector: list folders first, and list entities in alphabetical order
* TWEAK: Increase efficiency when listing Backblaze files during multi-delete operation
* TWEAK: Integrate UpdraftVault storage with the scheduled destination backups feature
* TWEAK: Added bucket access style field to S3-Compatible (Generic) to allow user to choose preferred access style (Path or Virtual-host)
* TWEAK: Improve handling of Amazon S3 authentication error messages to avoid misunderstanding concerning "wrong bucket region" that occurs after trying further methods
* TWEAK: Make modal dialogs resizable
* TWEAK: During the Database scan if the amount of tables found exceeds the PHP max input vars limit then truncate the list, to prevent restore options being lost
* TWEAK: Update seasonal notices
* TWEAK: Track the amount of restore options being sent and warn the user if this exceeds the PHP max_input_vars limit
= 1.16.54 - 05/Apr/2021 =
* FIX: Undetected build system error on free version omitted jstree library
* TWEAK: Reduce plugin size by removing 9 languages that are now fully available from the wordpress.org on-demand system
= 1.16.53 - 03/Apr/2021 =
* FIX: Incorrect final table name being used during an atomic restore when restoring using a different table prefix
* FIX: Fix variable re-use issue in Backblaze multi-delete code which halted deletion
* TWEAK: Prevent unnecessary logging when testing data for serialization on PHP 8.0 during migration
* TWEAK: Update jsTree library to version 3.3.12-rc0 to work around deprecated jQuery functions
* TWEAK: Add an extra check for whether it looks reasonable to reduce the resumption time, increasing efficiency
* TWEAK: On the posts table, detect over-sized rows in advance, and fetch them one at a time.
= 1.16.51 - 01/Apr/2021 =
* FIX: Backup before updating dialog was not working on the inline informational pop-up on the Plugins page
* TWEAK: Refactor how translatable texts are being handled and displayed within the UpdraftCentral client code
* TWEAK: Fix parameter passing for UpdraftCentral multiplexed request
* TWEAK: Exclude/skip very large files from the backup operation if the first and second attempt at backing them up didn't succeed
* TWEAK: Backblaze multi-deletion code did not properly handle files that were already deleted (could abort deletion of others)
* TWEAK: Replace the table prefix in the constraint name if it is found
* TWEAK: Don't perform an atomic restore on tables with constraints
* TWEAK: Add atomic restore support for non-WordPress tables
= 1.16.50 - 16/Mar/2021 =
* FIX: An issue with refreshing Dropbox access tokens
* TWEAK: Reduce and log memory usage in Google upload methods
* TWEAK: Catch Dropbox HTTP 401 errors and refresh the access token
= 1.16.49 - 10/Mar/2021 =
* FIX: Don't perform an atomic restore for non-WP-prefix tables backed up (Premium feature) - fixes a bug that resulted in the final table being dropped
* TWEAK: Dates/times shown in the "next scheduled backup(s)" are now translated into the user's locale
= 1.16.48 - 09/Mar/2021 =
* FEATURE: If needed database permissions are available then perform an atomic restore to improve chances of successfully restoring the database
* FEATURE: Added the ability to manually complete authentication with Google Drive (Avoids issues where security modules/plugins break the authentication flow)
* FEATURE: Added the ability to manually complete authentication with OneDrive (Avoids issues where security modules/plugins break the authentication flow)
* FEATURE: Google Drive and Google Cloud now allow boosting chunk size for faster transfers
* FIX: Files/Directories Exclusion not saving correctly when adding numeric directory/file names into the exclusion list
* FIX: Different PHP versions generate different suffixes length in the temporary ZIP filename resulting in a chance of overlapping runs
* FIX: an issue with mysqldump password character escaping
* TWEAK: Avoid unnecessary database writes caused by redundant jobdata updating during backup of files
* TWEAK: Add "anywhere in their names" syntax option to the exclusion UI
* TWEAK: Bump the requirement for the S3 enhanced module, and for using the official AWS SDK, up to PHP 5.5 (in preparation for updating the SDK version later)
* TWEAK: Fix a bug of report emails for incremental backups displaying incorrectly in many email apps
* TWEAK: Update Select2 library to version 4.1.0-rc.0 to work around deprecated jQuery isFunction
* TWEAK: Update jQuery-serializeJSON library to version 3.2.0 to work around deprecated jQuery isArray
* TWEAK: Handle hosts that have disabled some of the PHP functions thus causing a fatal error on PHP 8
* TWEAK: Correct under-calculation of used memory in verify_free_memory()
* TWEAK: Fix (inconsequential to this point) double-use of identifier for SQL statement type
* TWEAK: Remove some compatibility code in Dropbox downloading pertaining to a folder selection bug eliminated ~8 years ago.
* TWEAK: Remove unneeded sub-site tables when performing a restoration/migration (Multisite)
* TWEAK: Improve the exclusion UI by adding new "wildcards" option thus allowing the user to add a set of patterns for excluding files/directories
* TWEAK: Integration of the new files that were previously added for abstracting UpdraftCentral's client code
* TWEAK: Excluded items (Files or Folders) that are not readable should not trigger a warning about being unreadable
* TWEAK: Fix some RTL CSS issues
* TWEAK: OneDrive 4xx error reporting
* TWEAK: Update the Dropbox SDK to use refresh tokens (long lived token support ends September 2021)
* TWEAK: implement a multi-delete capability when deleting from Backblaze
* TWEAK: On UpdraftClone display the image ID in the advanced tools tab for easier debugging
* TWEAK: Make it more clear in the restore log that we are starting an AJAX restore
* TWEAK: The download backup HTML so that there is only one download button per archive type
= 1.16.47 - 25/Jan/2021 =
* FEATURE: added the ability to anonymise personal data in database backups from the "Backup Now" dialog (Premium / add-on)
* FEATURE: Add page management module for UpdraftCentral
* FIX: 1.16.42 Introduced a regression (truncation) when listing files from Dropbox when there were multiple pages of results
* TWEAK: Force host-style bucket access when backing up via S3 generic to Alibabacloud
* TWEAK: Remove unneeded Google SDK files from our fork of the SDK taking the size from 6MB to 800KB
* TWEAK: Incorrect jQuery UI dialog extended filename
* TWEAK: Change some class names to improve compatibility with other plugins using the Google SDK and auto-loading their version unconditionally
* TWEAK: Update the delete file Dropbox API call to version 2
* TWEAK: Change the S3 test settings form names to match the saved setting names
* TWEAK: Check the Content-Type on the response from an S3-compatible provider slightly less strictly, improving compatibility with at least one otherwise-working implementation
* TWEAK: Update the Dropbox SDK to use scopes
* TWEAK: Handle hosts that have removed disk_free_space() (now that on PHP 8 disabling functions removes them)
= 1.16.46 - 05/Jan/2021 =
* FIX: Prevent some deprecation-related errors when backing up to some remote storage locations in PHP 8
* FIX: Adding new remote storage instance (Premium) doesn't bring up the UI
* TWEAK: Fix some modal dialog alignment/resizing issues
= 1.16.45 - 04/Jan/2021 =
* FIX: Prevent some fatal errors due to language behaviour changes when running under PHP 8
* TWEAK: Replace deprecated calls to jQuery fn.focus(), fn.ready(), fn.submit(), fn.click() and fn.blur() methods in internal libraries
* TWEAK: Replace deprecated calls to jQuery (:first) and (:eq) pseudo-classes in internal libraries
* TWEAK: Prevent several PHP deprecation log notices on PHP 8
* TWEAK: Rename some further classes in our fork of the Google SDK to prevent conflicts
* TWEAK: When running under cron, do not combine schedules when there are no schedules
* TWEAK: Revert a jQuery change in 1.16.44 which made notices on the 'updates' page appear multiple times.
= 1.16.43 - 17/Dec/2020 =
* TWEAK: Replace deprecated calls to jQuery.trim(), jQuery.fn.change(), jQuery.fn.bind(), jQuery.fn.unbind(), jQuery.fn.keyup(), jQuery.fn.removeAttr() and `jQuery.fn.removeProp() in internal libraries
* TWEAK: Reduce excessive vertical margin above the header within Autobackup dialog box
* TWEAK: Improve user experience in the case of some rare UpdraftVault conditions
* TWEAK: Fix the exclude fields, which were unable to switch their mode from read-only to edit mode
* TWEAK: Added new files needed for abstracting UpdraftCentral's client code
* TWEAK: Update the review notice
* TWEAK: When attempting to delete a Backblaze file and discovering it does not exist, do not log that as an error (presumably already deleted)
* TWEAK: Fetch history log data in the popup using AJAX, instead of using embedded data attributes.
* TWEAK: Be less quick to switch to PclZip when BinZip has not completed the job
= 1.16.42 - 10/Dec/2020 =
* FEATURE: Added the ability to manually complete authentication with Dropbox (Avoids issues where security modules/plugins break the authentication flow)
* TWEAK: Replace BlockUI's deprecated jQuery functions and/or shorthand events with the appropriate method accordingly
* TWEAK: Replace /2/files/search Dropbox API calls with /2/files/search_v2
* TWEAK: Replace Labelauty's deprecated jQuery functions and/or shorthand events with the appropriate method accordingly
* TWEAK: Fix broken multiple range selection's highlighters due to the absence of jquery-migrate in the WordPress core on version 5.5
* TWEAK: Add the latest jQuery UI CSS framework for compatibility with WordPress 5.6 and all ongoing versions of WordPress
* TWEAK: Add support for PHP 8.0 in UpdraftClone
* TWEAK: Prevent a couple of PHP coding notices on PHP 8.0
* TWEAK: Tweak in the backing up of tables to reduce PHP memory use when working with very long row contents
* TWEAK: Prevent a PHP warning when starting a backup
* TWEAK: Fix a UI issue in the "send backup to remote site" options
= 1.16.41 - 27/Nov/2020 =
* TWEAK: Don't repeat sending the 'upload_complete' command to a remotesend destination after it succeeded the first time
* TWEAK: Update the udrpc library
* TWEAK: In UpdraftClone, delay the temporary_clone_ready_for_restore signal until the browser connection is closed (preventing a loss of response)
= 1.16.40 - 25/Nov/2020 =
* TWEAK: Cycle Dropbox API client ID (old one has been cycled and no longer works)
= 1.16.37 - 23/Nov/2020 =
* FIX: Scheduled backups to remote storage not being correctly sent in 1.16.35/36 in the absence of the "More Storage" add-on
* TWEAK: Wording tweak to clarify the effect of the conditional logic settings
* TWEAK: Add a warning to the restore page to inform the user if JavaScript is broken and as a result the restore won't start
* TWEAK: Replace intval() with casting to (int)
* TWEAK: If the first fetch from a table failed, then the algorithm to fetch fewer rows failed to reduce the fetch size more than once
= 1.16.36 - 20/Nov/2020 =
* TWEAK: During a restore or migration, detect if the backup was affected by the key issue fixed in 1.16.35, and automatically unselect by default such tables from the list of those to be restored. On a migration advise the user to take a fresh backup on the source site with a current version.
= 1.16.35 - 19/Nov/2020 =
* FEATURE: Backup destinations with conditional logic rules for scheduled backups (Premium)
* FIX: A regression in 1.16.30 meant that the term_relationships table could have rows missing in the backup if mysqldump was not present/used; this meant that items with multiple terms were only having one relationship backed up (e.g. multiple tags being assigned to one post)
* TWEAK: Adding remote block assets support when editing post from UpdraftCentral
* TWEAK: Rename UpdraftCentral's main and listener classes
* TWEAK: Improve error message when encrypted key given by user for SFTP/SCP remote storage method
* TWEAK: Enhance the algorithm when dumping large tables via PHP, by also consulting the size of the current uncompressed data and passed time and resumption state
* TWEAK: When there are no backups in existence, display some help text explaining how to upload one for restoration
* TWEAK: Prevent composer 2 run-time platform checks
* TWEAK: Update bundled cacert.pem file
* TWEAK: When fetching less rows due to previous failures, make this persist across resumptions when on the same table
* TWEAK: Raise the default for UPDRAFTPLUS_MAXBATCHFILES
* TWEAK: Improve handling of the situation when the source database has no table prefix (which is officially unsupported by WordPress, but people have them)
* TWEAK: When fetching the site name from the database, process it via wp_specialchars_decode() to remove HTML encodings that WP applied before storage
* TWEAK: Replace uses of php_uname() function with PHP_OS constant when the server where PHP is running on disables the function for security reasons
* TWEAK: When the definition of a VIEW cannot be fetched, report this nicely, do not let it be flagged as a fatal error, and log it in the backup file and log
* TWEAK: Integrate UpdraftPlus and WordPress 5.5 core's automatic update settings
* TWEAK: When a backup resumed, the last successful resumption was incorrectly set as the last successful resumption when an 'alive' event was recorded, rather than a 'useful' one; this deferred some mitigations when there was insufficient progress
* TWEAK: Add another tweak to paid versions' update checking time algorithm
* TWEAK: Add "Select all" and "Deselect all" link texts for bulk selecting/deselecting tables from the database table list on the manual backup dialog
* TWEAK: Ensure all code paths use internal ud_parse_json function for decoding JSON in JavaScript
* TWEAK: When using UpdraftVault, only cache results of a vault_getconfig call conditionally (retry on potentially transient errors)
* TWEAK: Prevent a PHP coding notice if running an UpdraftVault backup on the CLI
* TWEAK: Reduce the on-disk logging of entity base directories containing vast numbers of entries
* TWEAK: When we first save the backup schedule set the scheduled time randomly between 9PM and 7AM
* TWEAK: During a remote storage rescan correctly update the backup file sizes to prevent incorrect 'may have changed' warnings
= 1.16.34 - 30/Oct/2020 =
* TWEAK: On sites with enormous numbers of tables (e.g. very large multisites), counting the already-backed-up tables when resuming took unnecessarily long since 1.16.30
* TWEAK: Update jQuery document ready style to the one not deprecated in jQuery 3.0
* TWEAK: While using the file tree browser return an error if we are unable to open a directory
= 1.16.33 - 20/Oct/2020 =
* FIX: Fatal error when doing a backup with no storage in the short-lived 1.16.32 (free version)
* TWEAK: Cookie policy changes in the Chrome family of browsers broke the embedded checkout; hence, this is now disabled (goes directly to updraftplus.com instead).
* TWEAK: Exclude All In One WP Migration-related archive files when backing up plugins and/or others from the UpdraftPlus backup process
* TWEAK: Add downloadable backup links in the Backup Report email (Reporting Addon)
* TWEAK: Rename some classes in our fork of the Google SDK to prevent conflicts
* TWEAK: Improve automatic backups output when 'UPDRAFTPLUS_NOAUTOBACKUPS' constant is defined.
* TWEAK: Remove the now-redundant concept of inner loops from the database table backup routine
= 1.16.31 - 20/Oct/2020 =
* FIX: A regression in 1.16.30 meant that tables with integer primary keys which used signed integers omitted the first row of the table from the backups. This is not common (e.g. it does not affect any core WP tables; most plugins adding tables follow WP core in using unsigned integers for primary keys).
= 1.16.30 - 15/Oct/2020 =
* PERFORMANCE: Where a table has a numerical primary key, extract its data using that index. This results in a substantial performance increase when fetching large tables using PHP. (The filter updraftplus_can_use_primary_key_default can be used to de-activate this behaviour).
* FIX: Remove incorrect decodeURIComponent() parsing when importing settings, which could prevent import of settings containing some special characters
* FIX: An issue where database tables that were not selected to be backed up in a "Backup Now" backup would get added to the backup during a resumption (i.e. if it did not finish in a single run)
* TWEAK: Catch errors from Google Cloud when the bucket is not found
* TWEAK: Fix undefined variables instead of expected values in message prior to settings import
* TWEAK: Strip the redundant WHERE for the --where parameter to mysqldump (which modern versions strip out, but a version was found that didn't)
* TWEAK: Handle hosts that have disabled the session_id() function
* TWEAK: Provide SQL mode information in the 'Site Information' section under the 'Advanced Tools' tab and in the database backup's header
* TWEAK: Show a notification of UpdraftPlus plugin updates even if the associated user account is not connected to the UpdraftPlus website
* TWEAK: Add mechanism to detect what hosting provider is being used and use it to make UpdraftPlus comply with Kinsta's backup limit policies (thus removing it from the list of disallowed plugins)
* TWEAK: When booting a clone if it's claimed from the clone queue then update the token being used
* TWEAK: Tweaked downwards the minimum time in the future for rescheduling a resumption
= 1.16.29 - 08/Sep/2020 =
* FIX: Added Africa (Cape Town), Asia Pacific (Hong Kong) & Asia Pacific (Osaka-Local) to AWS
* FIX: Fix bug where incorrect function call prevented backup file downloads from the WP dashboard
* TWEAK: Removed LinkedIn and Google+ links
* TWEAK: Choosing email remote storage method in the free version will automatically tick the "Email" field setting, making the UI meaning clearer
* TWEAK: Work around the invalid file paths if found in some key-value pairs in the PHP user.ini file or Apache .htaccess file when restoring
= 1.16.28 - 02/Sep/2020 =
* FEATURE: Support backing up and restoring MySQL/MariaDB routines (stored procedures and functions)
* FEATURE: Added the ability to search and replace the database via WP-CLI
* FIX: Bit fields in a table don't necessarily get backed up correctly due to the difference in the output of mysql_query() and mysqli_query() for the bit-field type
* FIX: Allow single multisite sub-sites to be restored when there is a http/https mismatch between the site and database backup
* TWEAK: Update plugin updates checker dependency (in paid versions) to the 4.10 series, improving compatibility with WP 5.5+'s updates management
* TWEAK: Suppress message about how to upgrade an already-installed plugin when on WP 5.5+ (where it is no longer relevant)
* TWEAK: Internal refactoring to allow more flexibility when creating database backups
* TWEAK: Force the turning off of ANSI_QUOTES in the active SQL mode when creating a backup, for better compatibility
* TWEAK: Add the ability to configure the 'max_allowed_packet' option in the binary mysqldump command via the 'UPDRAFTPLUS_MYSQLDUMP_MAX_ALLOWED_PACKET' constant
* TWEAK: The Google Drive options exist condition to prevent a false positive saved settings error
* TWEAK: Improve the UpdraftPlus get_outgoing_ip_address method in finding user webserver's IPv6 address
* TWEAK: Removed MetaSlider notice in the notices collection
= 1.16.27 - 23/Jun/2020 =
* FIX: In the free version configured remote storage locations were not selected by default in the backup now modal
* FIX: On newer versions of Curl uploads to Dropbox can fail with a bad request, we now retry with a better request
* FEATURE: Improve support for enormous tables when outputting via PHP via batching of the dump
* TWEAK: Add site_url to load_plugins and load_themes requests
* TWEAK: Catch PHP fatal errors when executing UpdraftCentral commands
* TWEAK: Tweak the version that gets added to CSS and JS filenames to work with addons
* TWEAK: Prevent an internal UpdraftVault message displaying in the UI when Vault is not in use
* TWEAK: Stop displaying the 'licence expires soon' warning if an active subscription is detected on the account
* TWEAK: Catch Google_IO_Exception during upload to Google Cloud to prevent further unwanted errors
* TWEAK: Date/time indicator in the UI now gets updated via the WP heartbeat API
* TWEAK: On large databases the database file scan can time-out; an option has been added to allow the restore operation to include tables that are missing from the list
* TWEAK: Use the administration email address (if possible) as the email sender address when sending a backup report email
* TWEAK: Catch new OneDrive access token has expired message during a backup
* TWEAK: Cleanup failed OneDrive uploads to prevent repeated failures that will never succeed
* TWEAK: Add a warning alert when the remote scan button is pressed to explain this feature to prevent support requests
* TWEAK: On large databases the amount of database tables can exceed the php_max_input_vars value; an option has been added to allow the restore operation to include tables that are missing from the list
* NOTE: The free version 1.16.27 was released as 1.16.26; i.e. if confused about 1.16.26 went, then the answer is that they are the same thing.
= 1.16.25 - 23/May/2020 =
* FIX: Dropbox since 1.16.24 was only deleting one backup files archive out of the set. i.e. Excess archives remained on Dropbox. These have to be deleted manually.
* TWEAK: Add version to CSS and JS within filenames to prevent old versions being served after update on sites which have customisations to remove the query string
* FEATURE: Added the ability to create UpdraftCentral keys from WP-CLI
= 1.16.24 - 15/May/2020 =
* FEATURE: Support migration between different "generate columns" syntaxes of MySQL and MariaDB
* FEATURE: Added the ability to choose the remote storage locations you want to send your backup to in the "Backup Now" modal
* FIX: If non-WordPress tables are selected in the advanced 'Backup Now' options, then back them up (even if the saved setting to back them up is off). i.e. "Backup Now" over-ride options should have been taking priority.
* FIX: Failure to restore database 'view' in some rare circumstances due to the nonexistent DEFINER account and lack of privileges
* TWEAK: Handle binary data during backup
* TWEAK: Add strack_st to the lists of large logging tables and tables not requiring search/replace
* TWEAK: Make search and replace case insensitive when operating on URLs
* TWEAK: The incremental backup notice logic
* TWEAK: Update bundled updater class (YahnisElsts/plugin-update-checker) (paid versions) to version 4.9
* TWEAK: Add another tweak to paid versions' update checking time algorithm
* TWEAK: Add the options_exist() method to backup modules that did not have it
* TWEAK: During manual backup uploads, check if the last 4 bytes are string "null" (caused by an error in uploading to Dropbox) and if so remove them. Prevents an unnecessary message about unexpected data.
* TWEAK: Show the backup label (if specified) in the UI backup progress indicator
* TWEAK: Added the facility to clear the list of existing migration sites
* TWEAK: Create default instance labels
* TWEAK: Bring list of debugging plugins up to date
* TWEAK: Add support for the AWS Milan and Cape Town endpoints (and correct a couple of existing endpoints that had wrong references)
= 1.16.23 - 01/Apr/2020 =
* FEATURE: Post module handler for UpdraftCentral
* FEATURE: Added the ability to select which database tables you want to restore
* FIX: An apparent change in Dropbox API behaviour at a recent date was causing uploads to Dropbox to be corrupted in some circumstances in versions 1.16.21-22.
* TWEAK: The "Backup now" options were all unselected after trying to take a manual incremental backup with no possible entities for increments
* TWEAK: When importing a single site into a multisite remove UpdraftPlus options and cron to prevent unwanted backups
* TWEAK: Auto select clone package based on size of the selected backup
* TWEAK: Prevent PHP notice when logging a Google Drive account full condition
* TWEAK: Prevent a PHP notice when Azure is deleting files on PHP 7.4
* TWEAK: Prevent potential PHP notice if returned OneDrive quota is zero
* TWEAK: When restoring a single site that is part of a multisite only put that single site in maintenance mode not the entire network
* TWEAK: Remove filesize warning from the log if we successfully added the file to the zip to prevent user concern
* TWEAK: Add page_visit_history table to list of those with low-priority data and search/replace unnecessary
* TWEAK: Add a warning message when restoring/migrating from an older PHP version to a newer version
* TWEAK: Set 'NO_AUTO_VALUE_ON_ZERO' sql mode on restorations, for better compatibility with MySQL 8
* TWEAK: Add WordFence logging tables to list of optional tables
* TWEAK: If the Google Cloud revoke call fails try again once
* TWEAK: Catch file closed errors during uploads to Dropbox to prevent unwanted errors in the backup log and prevent user concern
* TWEAK: Get list of supported UpdraftClone regions from updraftplus.com
* TWEAK: Logging in backup modules will now correctly pass on arguments to main log function
* TWEAK: Change OneDrive 'account full, expected to fail' error message to a recoverable warning
* TWEAK: Detect non-homepage 404s and provide FAQ link after a restore
* TWEAK: Add paging to the existing backups table to prevent long loading times for sites with a large amount of backups
* TWEAK: Remove unwanted padding on some buttons
= 1.16.22 - 17/Feb/2020 =
* FIX: Fix a regression with some S3-compatible providers caused by a previous switch to virtual-hosted style bucket referencing
* TWEAK: Integrate input credentials from UpdraftCentral's zip install feature
* TWEAK: Add information to the log file about what type of addresses (sub-domain/sub-folder) the multisite is configured to use
* TWEAK: Fix potential race condition affecting settings page notifications on very fast or very slow sites
* TWEAK: Some PHP notices that could be output during a restore
* TWEAK: Automatically resume a timed-out restore operation during the uploads stage
* TWEAK: If the database connection dies during a restore operation, try to reopen it
* TWEAK: Adjust the UpdraftClone dashboard notice text
* TWEAK: If the Google Drive revoke call fails try again once
* TWEAK: The incremental backups label showed the incorrect time for different timezones
* TWEAK: Update the WP-Optimize notice
* TWEAK: Extend the auto resume restore to themes, others and more file backups
= 1.16.21 - 10/Dec/2019 =
* FIX: Correctly search and replace database views when importing on a site with a different table prefix
* FIX: A bug that prevented the restore modal opening on the migrate/clone tab
* FIX: Dropbox cURL issues on connection are resolved for PHP 7.4
* TWEAK: Change the way the "Disabled Cron" warning appears on the administrative settings page
* TWEAK: Improvements to error messages return for UpdraftCentral's plugin and theme installation process
* TWEAK: Updates to credentials validation for UpdraftCentral's plugin and theme modules
* TWEAK: Add media request handler for UpdraftCentral media module
* TWEAK: On paid versions, again possibly adjust the daily update check time to further favour overnight hours
* TWEAK: Mask classified information in WebDav URL settings
* TWEAK: Add multiple range selection on certain backup using ctrl and shift buttons
* TWEAK: Hide incremental backup link if the backup directory is not writable
* TWEAK: Make Updraft_Restorer_Skin compatible with WP 5.3
* TWEAK: Added Linode object storage link to list of supported S3 providers and updated existing links
* TWEAK: Ensure some variables are defined to prevent unwanted warnings
= 1.16.20 - 04/Nov/2019 =
* FEATURE: Add support for PHP 7.4 in UpdraftClone
* FEATURE: Added the ability to restore "more files" backups
* FEATURE: Add OneDrive Germany compatibility
* FIX: Failure to send existing translation version with update checks (on paid versions) resulted in redundant translation updates
* FIX: Deal with a BackBlaze "first chunk too small" error correctly when doing chunked uploading
* TWEAK: Block any updates from occurring during a restore
* TWEAK: Force the predecessor Amazon S3 SDK to use virtual-hosted style bucket identification instead of path style
* TWEAK: Refactor the remote storage logging code in Addon base v2
* TWEAK: Removed the Keyy notice (Keyy now has a new owner)
* TWEAK: Add WP 5.3 support in UpdraftClone
* TWEAK: On paid versions, possibly adjust the daily update check time to favour overnight hours
* TWEAK: Get UpdraftClone supported WordPress versions during authentication
* TWEAK: Added the ability to use backups stored in remote storage for UpdraftClone
* TWEAK: Small PHP 7.4 deprecation tweaks in the Google and legacy AWS SDKs
* FIX: Prevent trying to download files that have no remote storage and don't exist locally
= 1.16.19 - 04/Oct/2019 =
* FIX: GoogleDrive and WebDAV remote storage methods now correctly report if remote files failed to be deleted
* FIX: Issue in cloudfiles-enhanced addon that breaks translations when the user language is different from the site language
* FIX: Regression: add missing restore options
* TWEAK: Improve restoration modal on mobile devices
* TWEAK: Support the new Amazon S3 Middle East (Bahrain) region when removing a backup set
* TWEAK: Improvements to the dashboard to allow for better screen-reader access
* TWEAK: Ensure phpseclib Crypt_Blowfish is loaded over PEAR's version
* TWEAK: Add time zone and expiries in to the UpdraftClone scheduled removal time
* TWEAK: Add a multi-delete capability for OneDrive to prevent PHP timeouts during deletes
= 1.16.18 - 20/Sep/2019 =
* FIX: Select2 instance visiblility in restoration modal when selecting blog on multisite
* FIX: Remove unsupported WordPress versions (3.6 and older) from the UpdraftClone selection list
* FEATURE: Ability to resume interrupted database restores
* TWEAK: Add filesystem error data when FTP input validation fails in UpdraftCentral
* TWEAK: Enable appropriate SQL mode to ensure the database restoration compatibility
* TWEAK: Add a link to the Backblaze configuration guide
= 1.16.17 - 12/Sep/2019 =
* FEATURE: Added the ability to use UpdraftClone with sub-folder based multisites
* FEATURE: Catch duplicate entries in a corrupt DB upon restoration and handle/fix them automatically
* FIX: Some more complicated triggers (see in CiviCRM) that were not previously handled correctly are; and SQL backup format for triggers is now mutually compatible with mysqldump/mysql binaries
* FIX: Reset internal state upon beginning backup_resume(), in case WP cron called us multiple times in the same process
* FIX: Provide compatibility functions on WP < 3.7 for mbstring_binary_safe_encoding() and reset_mbstring_encoding()
* FIX: Correct the Azure China storage endpoint in options
* TWEAK: Re-designed restore process
* TWEAK: Prevent cosmetic error if WP_Filesystem call fails when deleting old folders
* TWEAK: Fix escaping that caused a problem in some translations with a dismissal notice
* TWEAK: Update bundled cacert.pem file
* TWEAK: Include a DROP command for any triggers about to be created in the backup
* TWEAK: The BackBlaze module (Premium feature) can now cope with BackBlaze losing uploaded chunks
* TWEAK: Cast file IDs in Backblaze to strings to prevent possible API error
* TWEAK: Do not attempt to perform search/replaces in tables of ARCHIVE type
* TWEAK: Introduce the constant UPDRAFTPLUS_SQLEXEC_MAXIMUM_ERRORS to aid debugging
* TWEAK: log message when checking which files need uploading on a incremental backup job
* TWEAK: Don't send external DB backups to UpdraftClone
* TWEAK: Reset the UpdraftClone UI if the clone is not created before it expires
* TWEAK: Automatically detect a stalled restore and offer a resumption on the restore page
* TWEAK: Remove some unused restore code
* TWEAK: Prevent a PHP deprecation log notice with WebDAV on PHP 7.3
* TWEAK: Catch exceptions and errors during recursive search/replace and recover from them
* TWEAK: CSS tweak to prevent other plugins from breaking the style of pop-up close buttons
* TWEAK: Ensure the error is logged on the final remote send complete call if it fails
* TWEAK: BackBlaze terminology updated to match their changes
* TWEAK: Update seasonal notices for next year
= 1.16.16 - 23/Jul/2019 =
* TWEAK: Adding support for installing plugin and theme through zip files in UpdraftCentral
* FEATURE: Added the ability to launch a blank WordPress clone
* FEATURE: Add --collate= parameter to WP-CLI (Premium) to allow substitution of locally unknown collations when restoring
* FIX: Switched to wp_insert_site() from insert_blog() and install_blog() method when importing single-site into a multisite network on WP 5.1+. Fixes 'Already Installed' error when importing on newer WP versions
* FIX: Issue where (rare) foreign key constraints aren't updated upon restore when table prefix changes
* FIX: Improve parsing of backed-up triggers when restoring preventing possible unnecessary errors
* FIX: If an upload to Google Drive starts to fail due to an OAuth token refresh error, the backup will re-bootstrap the Drive client and try again
* FIX: JSON-reparser to prevent unwanted RINFO data being output to screen
* FIX: Triggers were still included in a backup for tables that were excluded because of lack of WP prefix
* FIX: Resuming restores could resume at an unnecessarily early stage
* FIX: Issue with Dropbox account information call that could make it fail
* TWEAK: In cases where there were duplicate Google Drive folders (which is possible if there are multiple network communications failures when looking up the folder), these are now detected and merged automatically
* TWEAK: Add option to start 250GB Vault subscription as in-app purchase
* TWEAK: Regression: backup checksums were not being recorded in the backup log file
* TWEAK: Remove UpdraftClone when the backup is cancelled by the user
* TWEAK: Send the backup log during the creation of UpdraftClone for easier support when a clone fails to receive the backup
* TWEAK: Detect OneDrive Graph token expiries and initiate swift resumption
* TWEAK: Reduce the permissions requested for the UpdraftPlus Google Drive app (this now means that backups manually uploaded to Google Drive can not be deleted through the UpdraftPlus UI)
= 1.16.15 - 31/May/2019 =
* FEATURE: Added the ability to use already existing local backups with UpdraftClone
* FIX: Prevent PHP fatal error (regression) when WP_Filesystem credentials were needed and wrong ones were supplied
* FIX: Issue where you could not delete old directories from the restore progress page
* FIX: Issue where restore would not run over AJAX if wrong credentials were entered when WordPress requested filesystem credentials
* FIX: Fix incorrect refusal to accept valid email addresses in the UpdraftCentral wizard
* TRANSLATION: The Italian translation is now complete and supplied from wordpress.org, so can be removed from the free plugin zip (saves 424KB disk space - if your mother tongue is not English and you want to improve UpdraftPlus, take a look at: https://translate.wordpress.org/projects/wp-plugins/updraftplus).
* TWEAK: Update UpdraftCentral theme module handler to support themes without a name header
* TWEAK: Prevent PHP log notice when fetching available theme updates via UpdraftCentral
* TWEAK: Add more scheduling options to the built-in list (you can still further add whatever other arbitrary options you like: https://updraftplus.com/faqs/how-can-i-add-any-new-scheduling-interval-to-updraftplus/)
* TWEAK: Abstract the code for handling maintenance mode to allow future improvements
* TWEAK: Fix a potential wrong file path in an error message
* TWEAK: If there is more than one Google Drive folder of the same name, now the selection is deterministic: the oldest one is always used
* TWEAK: Infer phpseclib class path from the class name, instead of hard-coding it
* TWEAK: Some lines that were meant to include HTML bold in the browser output had lost that effect
* TWEAK: Add what entity caused the automatic backup to the logfile
* TWEAK: Upon restoration, a couple of known plugin cache directories will be emptied to prevent serving up an intermediate page
* TWEAK: Fix a bug in the "fail on resume" error-trapping logic which could cause it to resume too many times
* TWEAK: Prevent a bogus error message being logged at the end of a successful direct site-to-site transfer
* TWEAK: Add backup size information when hovering at the backup data buttons (excluding database button)
* TWEAK: Allow the plugin to connect to account and activate Premium licence if no more UpdraftCentral Cloud licences remain and the user enables the 'Add this website to UpdraftCentral' option in the Premium/Extensions tab
* TWEAK: During a restore send structured data to the front end. This is preparing the way for future UX improvements.
= 1.16.14 - 30/Apr/2019 =
* TWEAK: Make UpdraftVault trial more discoverable
* TWEAK: Fix stray JavaScript in the short-lived version 1.16.13
* TWEAK: Add support to translation updates
* TWEAK: Add WP 5.2 support in UpdraftClone
* TWEAK: Prevent PHP notice in remotesend method
* TWEAK: Restorations are now started over AJAX instead of in-page. This is preparing the way for future UX improvements.
* TWEAK: Upgraded the 'site-to-site' remote sending code to use the more recent UDRPC message format
* TWEAK: Make the UpdraftClone suggestion sentences dismissible
* TWEAK: Improve JSON-reparser to cope with even more exotic junk from some setups with problems elsewhere in their stack
= 1.16.12 - 16/Apr/2019 =
* FIX: Regression which caused PclZip unzips to be very slow
* TWEAK: Add stream_meta to the list of log tables and tables not requiring search/replace
= 1.16.11 - 08/Apr/2019 =
* FIX: Issue which prevented the downloader UI being removed during a manual entity download (regression)
* FIX: Regression in 1.16.10 whereby restore resumptions did not correctly resume because the jobdata had not been loaded
* TWEAK: Update UpdraftCentral description and internationalize strings
* TWEAK: Handle HTTP/2 responses from Dropbox on some operations
* TWEAK: Add a timeout on Dropbox quota look-up operations during backup, in response to cases of faulty outgoing HTTP proxies
* TWEAK: The backup_finish() method should not have been private; could cause a harmless PHP abort when manually stopping a backup
* TWEAK: Wrong variable context could cause failure of SFTP progress recording
= 1.16.10 - 23/Mar/2019 =
* FEATURE: Added support for backing up and restoring SQL triggers
* FIX: Prevent the downloader UI being removed before it's complete in the case of multi-archive sets (regression)
* TWEAK: Refactor the restore code and use jobdata to save information about the restore rather than using $_POST data
* TWEAK: Automatically show the UpdraftClone admin UI for UpdraftClone developers for easier debugging
* TWEAK: Prevent a PHP notice with certain exclusion settings
* TWEAK: Add a mention of UpdraftClone in WP's PHP version notice and WooCommerce's "untested extensions" notice
* TWEAK: Add 5.1 to the built-in list of available UpdraftClone WP versions
= 1.16.8 - 13/Mar/2019 =
* FIX: If requesting clone credentials that were not ready, the loop could rapidly repeat instead of waiting the intended time
* TWEAK: Some background updates checks (paid versions) that were intended to be suppressed, weren't being.
= 1.16.7 - 11/Mar/2019 =
* FEATURE: Add support for bucket-specific application keys in Backblaze
* FEATURE: Added the ability to take incremental backups via UpdraftCentral
* FIX: Dropbox authorisation setting getting lost after saving UpdraftPlus settings in the free version
* FIX: Issue where an error wasn't thrown if you tried to restore a backup with no valid components
* TRANSLATION: Norwegian (Bokmål) and Polish translations are now complete and supplied from wordpress.org, so can be removed from the free plugin zip (saves 900KB disk space - if your mother tongue is not English and you want to improve UpdraftPlus, take a look at: https://translate.wordpress.org/projects/wp-plugins/updraftplus).
* TWEAK: Ride a polling status check on the regular heartbeat check, thereby reducing the need for stand-alone polls
* TWEAK: If FTP settings were removed and an attempt was made to download a backup, then a zero-sized file would be created and then an unclear error shown, instead of just showing a clear error.
* TWEAK: For premium users: Added the option to connect to UpdraftCentral Cloud at point of connecting a license to a site
* TWEAK: If on PHP 5.3 or later, then register our Google SPL auto-loader with the 'prepend' flag, so that we can avoid loading incompatible Google SDKs registered (but not yet used) by other components
* TWEAK: Clear settings visuals after wipe settings
* TWEAK: Improve UpdraftPlus news layout on dashboard
* TWEAK: Handle a case seen where the updates checker failed to load
* TWEAK: Prevent a possible PHP notice when requesting a rating
* TWEAK: Update to the current series (4.5) of yahnis-elsts/plugin-update-checker (paid versions)
* TWEAK: The "follow this link to refresh your (licensing) connection)" (paid versions) link was not functioning
* TWEAK: Alert the user in the UI if they have activated a storage destination without any settings
* TWEAK: Refactor the remote storage logging code in the S3, Email, Remote send, Backblaze, WebDAV, UpdraftVault, FTP, Google Cloud and Azure modules
* FEATURE: Ability to purchase UpdraftVault subscriptions, including a new 5GB 1 month trial, directly from the UpdraftVault settings
* TWEAK: If a directory is not found during a restore but the parent directory is then, where relevant, UpdraftPlus will automatically try to create the missing directory
* TWEAK: Use the correct nonce name when requesting filesystem credentials if needing the WP_Filesystem API to delete old directories
* TWEAK: Regression in 1.16.6 - certain types of final errors stopped being shown in the final report and had to be read from the log file
* TWEAK: Refactor the remote storage logging code in all remote storage modules
* TWEAK: Prevent the download entities UI becoming uglified from multiple button presses
= 1.16.6 - 14/Feb/2019 =
* FEATURE: Added new S3 intelligent tiering class
* FEATURE: Ability for user to buy Premium without leaving the plugin's settings pages
* FEATURE: UpdraftPlus can now catch backups that don't complete because of errors that kill PHP and make sure a report is still sent about them
* FIX: If a very large UpdraftVault upload took more than an hour, then the token could expire without being refreshed (fix in version 1.16.0 was incomplete)
* PERFORMANCE: Modify a condition in the zip-batching algorithm so that greater acceleration in the zip-batching algorithm is allowed on setups allowing very long PHP run times on the initial (zero-eth) resumption
* PERFORMANCE: UpdraftClone now sends larger chunks over the network, leading to faster sending of data
* PERFORMANCE: Force UpdraftClone to use a 100MB split size for better performance (previously intended, but not always working)
* TWEAK: Upon restoration, WP's cache directory will be emptied (by default it is not included in backups, so in theory this is a no-op, but the occasional case has been seen where it got populated during the restore process)
* TWEAK: Add support for the new Europe (Stockholm) (eu-north-1) AWS region in Amazon S3
* TWEAK: Advise the user if they changed the plugin's slug (and so won't be able to get updates) (paid versions)
* TWEAK: Make use of wp_get_themes rather than relying solely to get_themes which is already deprecated
* TWEAK: Regression: When a user aborted a fatal error occurred before all clean-up actions were complete
= 1.16.5 - 28/Jan/2019 =
* FEATURE: If a restoration is interrupted (e.g. PHP timeout), then the "Continue" feature can now resume not just at the most recent zip file, but within the zip file at the point it had reached (https://updraftplus.com/auto-resuming-interrupted-restores-part-2/)
* FEATURE: Added command in WP-CLI which gives a list of incremental backups restore points.
* FIX: Regression: When a Dropbox upload failed to complete, UpdraftPlus would log this but fail to retry
* FIX: Again update phpseclib to the latest version which should now fix the 'SSH2 Server Host Key Algorithm Mismatch' on all installs
* TWEAK: Correct a wrong variable reference in an error message
* TWEAK: Only add the JavaScript for the incremental schedule selection on the UD settings page
* TWEAK: Replace incidental use of ipinfo.io now that it requires a paid API key
* TWEAK: The print_delete_old_dirs_form method should have been public to allow painting if the user clicked through the previous message
= 1.16.4 - 17/Jan/2019 =
* FIX: Regression: Properly mark backups picked up via "Rescan remote storage" as non-native (preventing unwelcome side-effects such as being pruned by another site)
* FIX: Correctly update the OneDrive refresh token to prevent expiry
* FIX: Again work around an issue with 'SSH2 Server Host Key Algorithm Mismatch' occurring with the current phpseclib release by temporarily reverting to an earlier one as it still does not work on all installs
* FIX: When restoring an incremental backup set via WP-CLI, the selected restore point was ignored
* FIX: If the remote storage settings were for multiple instances of a single backend-type (e.g. two Dropbox accounts), and if the entire backup and send operation completed in a single PHP process, then the local copy of the files would not be deleted
* TWEAK: Show the error message if mbstring.func_overload is turned on in php.ini while creating migration key
* TWEAK: Added Azure China endpoint
* TWEAK: Resolve "dashicons" CSS conflict
* TWEAK: Add 'blogmeta' to the list of core tables (in readiness for WP 5.1)
* TWEAK: Remove unnecessary deprecated (in PHP 7.3) parameter to define() in WebDAV HTTP library
* TWEAK: Prevent a potential PHP notice in UpdraftPlus Premium when installed without network access
* TWEAK: Enhance the updraftplus_exclude_file and updraftplus_exclude_directory filters to also pass the stored names
* TWEAK: Add a new constant UPDRAFTPLUS_ZIP_BATCH_CEILING that can tweak internals of the zip backup engine
= 1.16.3 - 10/Jan/2019 =
* FIX: Prevent extraction regression (in 1.16.1) when using PclZip (N.B. php-zip is always preferred if installed) on zero-sized files
* FIX: Prevent the incremental backup cron from being incorrectly scheduled
= 1.16.2 - 07/Jan/2019 =
* FIX: wp_doing_cron() was used when unzipping, but requires WP 4.8+ (regression in 1.16.1, which was never released on wordpress.org)
* TWEAK: Updated phpseclib to the latest version after the previous work around to fix the 'SSH2 Server Host Key Algorithm Mismatch' issue
* TWEAK: Check-in with the clone during the backup process to make sure it is not prematurely purged
= 1.16.1 - 01/Jan/2019 =
* FIX: If a very large UpdraftVault upload took more than an hour, then the token could expire without being refreshed
* FIX: Version 2.16.0 could write invalid or incomplete JSON when creating the manifest file on an incremental backup under certain circumstances
* FIX: When restoring an incremental backup set via WP-CLI, the restore order could be wrong
* TWEAK: Accept and parse the invalid JSON when restoring an incremental archive created on 2.16.0
* TWEAK: When running an incremental backup, the backup report would report the time taken to run the backup wrongly
* TWEAK: Make the logging on the state of zip extraction more fine-grained (at least every 100MB, 1000 files or 15 seconds)
* TWEAK: Re-factoring of zip extraction code to allow for future improvements
* TWEAK: Re-factoring of the restore routines to share more code between different entry points, and allow future improvements
* TWEAK: Differentiate between failures to JSON-decode an incremental backup manifest file and other types of failures
= 1.16.0 - 19/Dec/2018 =
* FEATURE: Added the ability to create and restore Incremental Backups (Premium version)
* FIX: Work around an issue with 'SSH2 Server Host Key Algorithm Mismatch' occurring with the current phpseclib release by temporarily reverting to an earlier one
* TWEAK: Improve performance by aggregating separate SQL SELECT queries (previously one for each backup) when loading the settings page
* TWEAK: internal backup extradata parameter to prevent unwanted PHP notices
* TWEAK: Fork a method UpdraftPlus_Filesystem_Functions::unzip_file() to allow for future enhancements
* TWEAK: Periodic purging of obsolete job data that didn't get cleaned when expected was not happening on multisite
* TWEAK: Improve logging when the initial call to jobdata_set_multi fails
* TWEAK: Any stored backup/restore progress log files will now be deleted after 40 days. (Since they are attached to email reports, you can keep and retrieve them from those if needed). Over-ride this with the filter updraftplus_log_delete_age if desired.
= 1.15.7 - 06/Dec/2018 =
* FIX: a method call on an incorrect class which caused a fatal error
= 1.15.6 - 06/Dec/2018 =
* FEATURE: Added WordPress 5.0 support to UpdraftClone
* FEATURE: Added the ability to choose the UpdraftClone server location
* FEATURE: Cut a step from the activation procedure on paid versions, improving reliability on some installs that did not detect available updates
* TWEAK: The UpdraftClone video is inserted after clicking a link (prevent unwanted call to the video server)
* TWEAK: Replace a 'continue' with a 'break' to prevent a PHP notice on PHP 7.3
* TWEAK: (Paid versions) Simplify the constants involved in defining a custom/over-ride licensing server; and show in the 'Extensions' tab if an over-ride applies.
* TWEAK: (Paid versions) Remove a library versioning assumption in the processing of results from a licensing claim
* TWEAK: (Paid versions) A regression had caused the current UD install version to be sent in an updates check
* TWEAK: Re-factoring of scheduling methods into their own class
* TWEAK: Tweak the scheduling engine to separate the next resumption time from the maximum run time in the case of overlapping runs, in order to prevent unnecessary large gaps between resumptions in cases where the server allows very long run times
= 1.15.5 - 19/Nov/2018 =
* TWEAK: Include the backup set ID in clone ready state file
* TWEAK: For Premium users with grand-fathered lifetime updates (i.e. purchased before August 2013), a regression had caused support entitlement expiries to no longer be notified
* TWEAK: For Premium users with who have downgraded from unlimited licences to another package, a licence expiry message could show when in fact the real situation was that they just needed to specifically allocate a licence to the site. The relevant message has been adjusted to improve this.
* TWEAK: Track "more files" incremental backup locations
* TWEAK: Don't show individual add-ons that have not been bought in the account add-ons page if the user has Premium.
* TWEAK: Include the raw updates check response information in the internal/advanced dump
* TWEAK: Added the UpdraftClone video
* TWEAK: Ability for user to buy Premium without leaving the plugin's settings pages
= 1.15.3 - 29/Oct/2018 =
* FEATURE: UpdraftPlus now has an option to auto-update
* FEATURE: Azure for Government endpoint support (Premium)
* FIX: SSL verification settings were not allowing verification to be turned off for generic S3 storage
* FIX: In some situations in which a user had defined UTF8 as their character set but WordPress was using UTF8MB4, UpdraftPlus was not detecting this
* FIX: Prevent particular a SQL text pattern wrongly triggering detection of database features when it is within content
* TWEAK: Marked as supporting WordPress 5.0
* TWEAK: Automatically re-scan for presence of database backup after restoring it, to prevent confusion over its status
* TWEAK: Change logic that controls whether the minified or full JavaScript is used
* TWEAK: Improve Settings tab UI on mobile
* TWEAK: Improve UpdraftClone UI
* TWEAK: Improve UpdraftClone temporary page UI
* TWEAK: Change method used to record the MySQL version to deal with how MariaDB can report when using a non-MariaDB client library (see: https://github.com/joomla/joomla-cms/issues/9062)
* TWEAK: Replace Base64 encoded logo by image file
* TWEAK: Hide guided tour on UpdraftClone
* TWEAK: Fixed broken automatic backup modal layout
* TWEAK: Auto rescan after restoring the remote database
* TWEAK: Explicitly set the backup history option to not autoload, as it can get non-trivial in size
* TWEAK: Improve UI of excluding things from the backup
* TWEAK: Prevent a possible PHP debug notice in methods/backup-module.php
* TWEAK: Show progress in browser view port instead of modal dialog when we delete the backup(s).
* TWEAK: Added a --db-dummy-restore option to WP-CLI which will run a dummy restore of the database (under an unused prefix) and then drop the tables after it finishes. This option can be useful for testing.
* TWEAK: Update the UpdraftClone UI when site information becomes available
* TWEAK: Curl errors when interacting with Backblaze B2 will now be passed up for easier debugging
* TWEAK: Re-factor add-on remote storage credential testing to make passing debugging information easier
* TWEAK: Implement non-default SSL options with Backblaze B2 (previously the defaults were always used)
* TWEAK: UpdraftClone: redirect to admin page after using the auto login link
* TWEAK: Improve internal more files backup location tracking
* TWEAK: Send a single request to download a backup set not for each file entity
* TWEAK: Fix a DOM element whereby multiple nonces had the same id
* TWEAK: Automatically build the more files backup location tracking on local rescan
* TWEAK: Refactor the remote storage logging code in Onedrive module
= 1.15.2 - 19/Sep/2018 =
* FIX: Asking the tour to cancel on the plugins page did not work
* FIX: an issue where some jobdata did not get set which resulted in the backup email not being sent
* FIX: a regression whereby network-activated plugins could get deactivated on multisites when restoring
* FIX: When database encryption was active, UpdraftClone would fail
* TWEAK: There is now a 'Rescan remote storage - log results to console' link in 'Advanced Tools' to aid with debugging
* TWEAK: Fixes Migrate / clone tab contents showing on the Advanced tools tab
* TWEAK: Attempt to catch, work-around and log when the backup history cannot be saved due to too long a history relative to the MySQL server's maximum packet size
* TWEAK: Re-factor and introduce the UpdraftPlus_Storage_Methods_Interface class
* TWEAK: Introduce the UPDRAFTPLUS_ENABLE_TOUR constant for power users; set it to false as part of your automated WP installation process (or manually) if you wish to disable all tour functionality.
= 1.15.0 - 12/Sep/2018 =
* FEATURE: Introducing UpdraftClone. Create a live copy of your site with a button press. Great for testing changes, testing updates (e.g. WordPress core, plugins, PHP versions) and anything else you can think of. More information: https://updraftplus.com/updraftclone/
* FIX: Fix the logic for claiming and activating licences/add-ons.
* FIX: Fixed OneDrive for Business Germany authentication tenant issue
* TWEAK: WP-CLI - use dash (-) instead of underscore (_) to separate words, in order to match WP-CLI standards.
* TWEAK: Adds close_browser_connection capability for servers using phpfpm
* TWEAK: Change multiple backups selection and actions UI
* TWEAK: Prevent PHP debug message on backup from UpdraftCentral when processing the service list
* TWEAK: Improves manual backup feedback
* TWEAK: Fix an out-of-date 'lost password' link
* TWEAK: Add filter updraftplus_disk_space_check to allow over-riding disk space check result
* TWEAK: Re-factor some of the restore code to enable future enhancements
* TWEAK: In the case of an 'always keep' backup, it was possible for the wrong log message to be logged concerning the reason for it being kept
* TWEAK: Add log warning and WP Admin notice regarding DreamObjects objects-us-west-1.dream.io endpoint shutting down
* TWEAK: Refactor the remote storage logging code
* TWEAK: Clean up some confusing UI when dealing with remote send backups
= 1.14.13 - 15/Aug/2018 =
* FEATURE: WP-CLI - add a 'get_latest_full_backup' command
* FIX: An issue when deleting multiple backups could result in a backup set not found error
* FIX: Polling during a backup when called from outside UpdraftPlus
* FIX: Plugin activation check was running at the wrong point in the restore process
* FIX: The WP-CLI "restore" command returned an unnecessary error if the incremental shim was not present
* TWEAK: Multisite tweaks for UpdraftCentral's plugin and theme module handlers
* TWEAK: Prevent potential PHP notice on page load when no backup storage is selected
* TWEAK: Add scoping to some CSS rules that were too general.
* TWEAK: A new "Backup / Restore" tab, which consists of backup status and existing backup with rid the "Current Status" tab and the "Existing Backups" tab
* TWEAK: Remove the possibility of a false-positive warning of a migration-rather-than-restoration if the WordPress home_url setting has legitimate oddities
* TWEAK: Improve UI of more database delete button (Premium)
* TWEAK: Removed Gold column and redesigned Premium page
* TWEAK: Improve UC factoring and introduce a UPDRAFTCENTRAL_COMMAND constant to allow context detection
* TWEAK: Tweaked downwards the minimum time in the future for rescheduling a resumption
* TWEAK: Deal with a possible issue in automatic collation selection in restoration when all character sets are supported and a collation is not supported
* TWEAK: Replace absolute URLs in place of relative URLs in anchor links
* TWEAK: Update error code URL for binary zip errors
* FEATURE: Added OneDrive for Business Germany compatibility
= 1.14.12 - 17/Jul/2018 =
* FEATURE: Added Plugin guided tour for new users
* FEATURE: Added UpdraftCentral's theme management module handler
* FEATURE: User can mark any backup as "do not delete", and it will then not be deleted even when retention limits are hit
* FEATURE: WP-CLI - add a 'restore' command
* FEATURE: WP-CLI - Add an option 'delete-during-restore' in the 'restore' command
* FEATURE: Add optional 'fingerprint' configuration for sftp/scp remote storage, allowing the connection to be halted if the server's fingerprint does not match what was entered
* FEATURE: Added the ability to take an incremental backup via WP-CLI (note: incremental backups are still considered an experimental/work-in-progress feature)
* FIX: If a user gave the wrong key to decrypt an encrypted database, the "Decryption failed" message did not display
* FIX: The Migration was not changing an unsupported database table engine with the MyISAM engine automatically
* FIX: Issue with the Dropbox account API call on some installs
* FIX: The web server disk space refresh link of the existing backups is not working
* FIX: The UpdraftPlus News couldn't print first time when the news cache was not made
* FIX: Activating the "all addons" licence did not remove the corresponding 'activate on this account' link in the "Premium / Extensions" tab
* FIX: When set names query character set hadn't support from the current MySQL server, the restoration process wasn't giving the option to replace the character set
* TWEAK: Updated the plugin.php handler for UpdraftCentral's new plugin management module
* TWEAK: Update posts handler to fix and update pagination in UpdraftCentral
* TWEAK: Refresh UpdraftCentral keys upon successful login or registration using the UpdraftCentral Cloud wizard
* TWEAK: Correct admin page URL in WP-CLI 'restore' command when on multisite without multisite add-on
* TWEAK: Prevent PHP notice when checking non-existent files in relation to an extraneous whitespace warning
* TWEAK: Prevent PHP notices in add-ons with non-present settings
* TWEAK: Add the "Migrate / Clone" tab in place of the "Migrate / Clone" dialog
* TWEAK: Prevent call to the the wp_get_sites() deprecated function on WP 4.6 and newer
* TWEAK: Prevent a potential PHP debugging notice when displaying the 'Connect with your UpdraftPlus.com' form
* TWEAK: Do not show the confusing JetPack 'backup' notice on the 'Updates' page
* TWEAK: Added clone notices and commands for when UpdraftPlus is running on a UpdraftClone
* TWEAK: Move 'Log all messages to syslog (only server admins are likely to want this)' into the 'expert' settings section
* TWEAK: Replace a missing class constant in the Dropbox SDK (only relevant to people upgrading from Dropbox API v1 tokens - indicates upgrading UpdraftPlus from a very old version that previously used Dropbox APIv1 but never v2)
* TWEAK: It's "backup", not "back up"
* TWEAK: Prevent potential PHP debugging notices in restoration step 2
* TWEAK: Allow non-Super Admins to access UpdraftPlus Premium if they have 'manage_network_plugins' capability and the updraft_user_can_manage filter is used
* TWEAK: Improved code in a way that prevents continuous polling in the themes page, the plugins page and the updates page
= 1.14.11 - 25/May/2018 =
* FIX: Revert a change in 1.14.9 that could cause backups to not be sent to remote storage (fix in 1.14.10 was not 100% complete (but worked for almost everyone))
= 1.14.9 - 24/May/2018 =
* FEATURE: Make it more seamless to sign up to UpdraftCentral Cloud
* FEATURE: Microsoft Azure storage (Premium) compatibility with Azure Germany
* FEATURE: Added the ability to create migration keys from WP-CLI (Premium)
* FIX: A backup icon/storage shows for a storage type even if all instances were disabled
* FIX: WP CLI updraftplus command was not running on few environments like the Windows command line
* FIX: A PHP fatal error was occurring when a user try to restore an encrypted DB when defining the "UPDRAFTPLUS_DECRYPTION_ENGINE" constant
* TWEAK: Added the ability to schedule incremental backups (Note you can not yet take incremental backups)
* REFACTOR: Completed factoring for tabs of the settings page.
* TWEAK: Some re-factoring and tidying of the restoration code for easier maintenance
* TWEAK: Add a longer timeout on SFTP logins to cope with a 'long delay, but then worked' situation seen in the wild
* TWEAK: An "Incremental backups" extension was displayed in the Premium / Extensions tab, causing confusion since it is not yet finished/launched
* TWEAK: Displays a Byte Order Mark (BOM) warning by giving the file names along with the path in the "Existing Backups" tab, if a BOM is detected at the start of common files that people tend to edit
* TWEAK: A WP CLI Existing backup command didn't display a date time in the "job_identifier" column
* TWEAK: Add links to the relevant app privacy policies within the settings sections for storage methods using OAuth authorization apps
* TWEAK: Log user and group IDs of process and file/folder, when permissions for an operation is denied
* TWEAK: Prevent a potential PHP debugging notice when showing the 'Upload' button
* TWEAK: Update an out-of-date "wrong password" link
* TWEAK: Added the "Web-server disk space in use by UpdraftPlus" information to "Site information" section in the "Advanced Tools" tab; it won't show in the 'Existing Backups' tab if you are using less than 100MB.
* TWEAK: When a Google Cloud token was invalid, a PHP Fatal could result instead of catching the error and informing/logging nicely
* TWEAK: If php-xml (SimpleXMLElement) is not installed, then show an appropriate warning in the Azure configuration section
* TWEAK: If the user tries to install another version of UpdraftPlus, then tweak the default error message that they are shown by WP, which is too obscure/cryptic for many users
* TWEAK: If a fatal error occurred during uploading a backup, try to recover it and process the upload further
= 1.14.8 - 12/May/2018 =
* FIX: Resuming of a partially uploaded backup archive in the new 'OneDrive for Business' module was not working
* TWEAK: When testing SFTP settings, if debug is activated, activate debug logging and pass the results back in the event of test failure (previous attempt was incomplete)
* TWEAK: OneDrive SDK cleaned up to remove the obsolete Live 5.0 API
= 1.14.7 - 25/Apr/2018 =
* FIX: Fix incompatibility with loading the dashboard on WP 4.6 and older. If you have this problem, then you cannot visit /wp-admin/ - you will need to update via another tool (e.g. if you have a multiple site management tool), or via FTP (download the https://downloads.wordpress.org/plugin/updraftplus.1.14.7.zip , unzip it on your PC, log in to your site via FTP into the folder wp-content/plugins, remove the existing folder 'updraftplus' and then upload the unzipped 'updraftplus' folder). Many apologies!
= 1.14.6 - 25/Apr/2018 =
* FEATURE: Added the option to upload locally-available backups to remote storage
* FEATURE: Add post management module for UpdraftCentral (client-side; UC-side still pending)
* FEATURE: Added WP-CLI "rescan-storage" subcommand to the WP-CLI add-on rescan either remote storage or local storage
* FEATURE: Compatibility of the (paid) OneDrive module with 'OneDrive for Business'
* FIX: Multisite restoration did not display single site restoration option when URLs were different but clearly the same site (http/https difference)
* FIX: WebDAV uploads could fail if the user defined the constant UPDRAFTPLUS_WEBDAV_NEVER_CHUNK
* FIX: If UpdraftVault remote had failed, UpdraftVault couldn't recover without settings wipe
* TWEAK: Handle a DreamObjects server that was not sending an application/xml content-type header
* TWEAK: Handle a case where the root cause of an error from DreamObjects was not being clearly shown
* TWEAK: Alert the user of their mistake if they try to enter a URL instead of a folder path in the OneDrive settings folder field
* TWEAK: Adjust the PclZip log message to clarify the implications of using PclZip (i.e.: it's significantly slower)
* TWEAK: Add support for the upcoming objects-us-east-1.dream.io DreamObjects endpoint
* TWEAK: Prevent potential PHP notice in WP-CLI subcommand for existing backups
* TWEAK: Add UpdraftPlus news in admin dashboard "WordPress Events & News" widget
= 1.14.5 - 3/Apr/2018 =
* FEATURE: Add a "Database only" option to the UpdraftPlus email backup options
* FEATURE: An UpdraftPlus add-on (paid) to run the backup process through WP CLI
* FIX: Restoration did not display the decryption passphrase input (but always used the saved one)
* FIX: Browse content download file was not working in Windows hosting
* FIX: The wrong default for the 'Delete local backup' setting was applied if you had never saved your settings
* TWEAK: Prevent a PHP notice showing when testing S3 storage
* TWEAK: Prevent a PHP notice when downloading from Dropbox
* TWEAK: Improved the migrate UI
* TWEAK: Update bundle cacert bundle to latest (2018-01-17) release
* TWEAK: Ajouter soutien pour le nouveau region AWS Paris (eu-west-3)
* TWEAK: Handle short filesystem reads when sending data to Google Drive
* TWEAK: Improve handling of PHP errors and exceptions during back-end calls
* TWEAK: Update internal OneDrive SDK for compatibility with 'OneDrive for Business' (not yet fully supported)
* TWEAK: Internal refactoring and improvements to the UpdraftPlus.com form
* TWEAK: Job ID is now separate from the file nonce
* TWEAK: Show increments in the UI
* TWEAK: Add visibility controls to functions of a stream wrapper class for WebDAV access
* TWEAK: Handle errors when getting folder ID from Google Drive more patiently
* TWEAK: Displays more descriptive error when google drive authentication error occur
= 1.14.4 - 19/Feb/2018 =
* FEATURE: Now supports AWS v4 signatures (allowing use of new AWS regions) with old S3 SDK (which is used on PHP 5.2)
* FIX: WebDAV options filter was not correctly saving any human-chosen description
* FIX: Regression: Rackspace 'new user' wizard was not functioning
* FIX: For chunked storage APIs that require a method to finally re-assemble chunks, if the first attempt failed, then a subsequent failed attempt could be incorrectly marked as having succeeded
* FIX: First instance of each remote storage object was not using its internal default options
* TWEAK: Added the ability to restore incremental backup sets (N.B. currently you cannot create incremental backup sets; this is part of our development of that feature)
* TWEAK: Edit welcome banner
* TWEAK: If 'lock admin' functionality (Premium) has been disabled by the site administrator, then include a line to that effect in the relevant section.
* TWEAK: Allow UpdraftCentral classes to have boiler-plate pre and post-call methods
* TWEAK: Do a bit more logging for Backblaze B2 uploads
* TWEAK: Add a sanity check to prevent some PHP debug notices being logged in an upgrade situation
* TWEAK: Resolved unwanted WebDAV remote storage JavaScript console message
= 1.14.3 - 24/Jan/2018 =
* FEATURE: OneDrive and Google Cloud deauthorise link provided after authentication
* FEATURE: Added the ability to label remote storage instances (Premium)
* TWEAK: Handle a combined error/timing condition seen on DigitalOcean Spaces that could lead to UD thinking that an upload that actually succeeded, did not
* TWEAK: Add functions to pull backup status and log for UpdraftCentral
* TWEAK: Add command multiplexer function for UpdraftCentral
* TWEAK: Audit and regularise use of slash-handling code in AJAX layer
* TWEAK: A couple of remote storage error paths were not returning the error information to the upper level correctly
* TWEAK: Prevent phpseclib from throwing a fatal upon autoload if mbstring.func_overload is set (see: https://github.com/phpseclib/phpseclib/issues/762); instead, log, or handle in some other way appropriate to the context
* TWEAK: Some minor code-styling and linting ignore tweaks
* TWEAK: (Regression) After filling the UpdraftVault connect form, pressing Enter was no longer triggering submission
* TWEAK: If counting up the total "More files" data when none are configured to be backed up, show "None configured" instead of "Error"
* TWEAK: Improve UI of notice when claiming an add-on
* TWEAK: Standardise the way OAuth remote storage methods authorise/deauthorise settings
* TWEAK: "Wipe Settings" button click event was not asking for confirmation
* TWEAK: Add Server Side Encryption (SSE) support to old S3 SDK
* TWEAK: Dropbox now uses the internal chunked download API
= 1.14.2 - 22/Dec/2017 =
* FIX: Email backups not sending correctly
* FIX: Buttons in the 'Migrate' dialog box stopped working after you switched tabs (until you reload the page)
* FIX: Unable to delete multi-storage S3 instances
* TWEAK: Remove duplicate DOM id for nonce fields
* TWEAK: Correct name of PutObjectAclVersion permission when requesting it in S3 wizard
* TWEAK: Improve S3 log message to make clear which back-end a message is coming from
* TWEAK: Improved migration warning message if migrator addon is available and restoration site url is slightly different than current site url
* TWEAK: New non-existent Backblaze B2 buckets are now created automatically
* TWEAK: Suppress expected (but confusing to some users) "404 not found" message in the log when WebDAV backup file is at 0% uploaded
= 1.14.1 - 12/Dec/2017 =
* FEATURE: Backup to multiple remote storage accounts of the same type
* TWEAK: Remove all the lines "X is a great choice, because is supports chunked uploading..." from the UI. Almost everything did support it, but not everything mentioned it, which could cause confusion.
* TWEAK: Prevent a PHP log notice in some settings savings scenarios
* TWEAK: Add missing filter for processing changes to Google Cloud, OneDrive and Azure settings (Premium storage option) on multisite
* TWEAK: Minor internal re-factoring: move hard-coded storage back-end names out of options and multisite addon classes.
* TWEAK: Prevent a PHP log notice during backup on PHP 7.2
= 1.13.16 - 07/Dec/2017 =
* TWEAK: Remove Ukrainian translation files from wordpress.org zip (translation now complete, will download from wordpress.org separately)
* TWEAK: Adding V4 Signature properties and methods to old S3 SDK
* TWEAK: Migrator add-on: keep a log of tables as they are created
* TWEAK: Tweak wording on the 'Premium/Extensions' tab
* TWEAK: Change the order of classes in methods/cloudfiles.php to work around a PHP install bug seen in one instance
* TWEAK: Be less aggressive about logging a usually unnecessary internal message about settings
* TWEAK: Improve UI of migration notice in free version
* TWEAK: Resolve PSR4 autoloading conflict with older version of Composer
* TWEAK: Pruning will now prune backups from multiple storage destinations of the same type (not yet a user-visible feature)
* TWEAK: Update the 'ifeq' handlebars helper to resolve a conflict with MainWP
= 1.13.15 - 28/Nov/2017 =
* FIX: Updated OneDrive SDK to allow for PHP 7.2 (due for release soon) compatibility
* FIX: When multiple remote backup destinations existed, pruning of old backup sets was not removing from all destinations (recent regression)
* FIX: When re-scanning a Rackspace Cloud Files remote location, only the first 100 files were processed
* FIX: Backups being downloaded twice from Dropbox during a restore which could cause unexpected results upon a site migration
* FIX: The 'SCP' and 'Server-side encryption' checkboxes in the settings was always ticked in the browser upon reload, regardless of the saved setting (regression in 1.13.14)
* TWEAK: Improve export settings file name by appending site name to export download file
* TWEAK: Perform escaping of table names in SQL calls without using esc_sql()
* TWEAK: Site option is deleted before updating it in multisite
* TWEAK: Improve WebDAV remote method upload speed
* TWEAK: Improve WebDAV remote method download speed
= 1.13.14 - 21/Nov/2017 =
* FIX: Search/replace checkbox was not appearing when migrating a multisite setup
* FIX: WordPress 4.8.3 introduced a breaking internal change in the WordPress database API, which broke the search/replace of strings including percent signs. Updated Migrator code to handle this.
* FIX: WebDAV remote storage settings not being loaded onto the settings page properly
* FIX: Rewrite of legacy (PHP 5.2) S3 SDK Class to fix pruning old backup sets when multiple storage back-ends that are all based on S3 are in use.
* TWEAK: Improve formatting of restoration warnings
* TWEAK: Add css classes to backup templates
* TWEAK: Standardise the way storage classes are internally stored/retrieved
* TWEAK: Remote storage modules configuration templates transition using handlebars.js
* TWEAK: Adjust message mentioning mcrypt which is not needed if php-openssl is installed
* TWEAK: Add UPDRAFTPLUS_USE_WPDB constant
= 1.13.13 - 02/Nov/2017 =
* FIX: Google Drive Custom App authorisation and de-authorisation was not working
* FIX: Rackspace new user creation had stopped filling the new credential fields automatically after successful creation of a new user
* TWEAK: When migrating, the detected search/replace terms now make sure that http and https variants are both included as search terms
* TWEAK: Make the internal error code with OneDrive auth failures more accurate
* TWEAK: Remote storage modules configuration templates transition using xamin/handlebars.php libraries
* TWEAK: Changed the Dropbox authentication flow to not send a GET request on large URLs
* TWEAK: Improve error message when invalid bucket name given by user for Backblaze remote storage method
= 1.13.12 - 25/Oct/2017 =
* TWEAK: Showing search/replace checkbox option only when needed.
* FEATURE: Warn the user if their .htaccess seems to contain a redirect (or any other reference) to the old site after migration.
* FEATURE: When importing a database, warn the user if the current MySQL server does not support a used collation, and offer to replace it
* FIX: Saving of S3 settings had taken a dislike to buckets beginning with a capital 'B'
* FIX: UpdraftCentral users' module was failing to handle loading a very large number of users
* TWEAK: Allows the installation and/or activation of the WP-Optimize plugin from UpdraftCentral
* TWEAK: Add multisite attribute to the error response object for the create user, delete user and edit user actions.
* TWEAK: All remote storage methods are ported over to using configuration templates internally
* TWEAK: Include a method to add a manifest file inside each backup archive
* TWEAK: All code relating to the now-dead Dropbox APIv1 removed (N.B. If you've not updated UpdraftPlus since November 2016 and were using Dropbox, it won't be working - https://blogs.dropbox.com/developers/2017/09/api-v1-shutdown-details/)
* TWEAK: Prevent a PHP log notice upon database backup restore when using Google Drive without a client ID
* TWEAK: Prevent the final 'Restore' button being pressed a second time
* TWEAK: Improvements to the UpdraftCentral wizard
* TWEAK: Update to trunk version of plugin updater (paid versions), restoring the ability to work on older WP versions (3.8 and before)
* TWEAK: Add lbakut_activity_log to the list of large log tables
* TWEAK: Updater in paid versions now requests JSON as response format for responses when claiming entitlements
* TWEAK: Resolve: Backup labels could end up with extraneous slashes in output
* TWEAK: Updater in paid versions can now receive and process update information in respond to entitlement claim - one less HTTP round-trip
* TWEAK: Improve Google Cloud authentication success message for bucket name is not defined
* TWEAK: UpdraftVault commands now pass an instance identifier
* FEATURE: Backups can now be uploaded to multiple instances of the same remote storage but not yet possible to add multiple instances
= 1.13.11 - 27/Sep/2017 =
* FIX: Fix a failure (regression in 1.13.8+) to download some backup sets which pre-date the existence of instances
* FIX: Fix a failure to backup in the short-lived 1.13.10 (many apologies)
* TWEAK: When logging an Exception or Error, include a backtrace (WP 3.4+)
* TWEAK: Prevent a PHP warning during a save of the backup history
* TWEAK: Added a MetaSlider notice in the notices collection
* TWEAK: Put a try/catch block that will catch PHP exceptions/fatals (PHP 7.0+) during encryption phase, so that any issues can be logged
= 1.13.9 - 25/Sep/2017 =
* FEATURE: Backblaze B2 (https://www.backblaze.com/b2/) support in UpdraftPlus Premium
* TWEAK: Port job data used by Azure, Google Cloud and OneDrive storage to being instance-local (now believed to all be ported)
* TWEAK: The automatic correcting of wrongly-input S3 and FTP settings had regressed in a recent version
* TWEAK: Various small fixes to the standards compliance of the HTML output in the remote storage settings area
* TWEAK: When deleting backups with multiple remote storage instances of the same type, order the attempts
= 1.13.8 - 21/Sep/2017 =
* FEATURE: When importing a database, warn the user if the current MySQL server does not support a used character set, and offer to replace it (with a link explaining the risks)
* FEATURE: Generic S3 storage module can now use non-default ports (specify by appending :(port number) to the host name)
* FIX: Re-scanning of remote storage would fail to detect a file manually uploaded to a secondary remote storage location if not also present locally. Various other (unlikely) corner-case rescanning scenarios also tested and fixed.
* TWEAK: Some enhancements to the S3 internals, to make the "S3 Generic" module behave better (it already worked) with the forthcoming DigitalOcean Spaces (object storage) (see: https://updraftplus.com/use-updraftplus-digital-ocean-spaces/)
* TWEAK: UpdraftCentral will no longer show updates which WordPress core lists which appear to be of the same version number
* TWEAK: Handle trying to download a zero-sized file through the browser more elegantly
* TWEAK: When pressing 'Delete', the "also delete remote backup" checkbox was showing even for backups without remote storage
* TWEAK: Abstract history handling into a separate class, UpdraftPlus_Backup_History, for easier maintenance
* TWEAK: Remove a use of count() on a string to prevent a new PHP notice on PHP 7.2+
* TWEAK: Some changes to the UpdraftCentral connection tool to make it more user-friendly
* TWEAK: Clarified and documented the re-scanning code, and made it compatible with the increased flexibility needed for incremental backups in future
* TWEAK: Tweaked UpdraftCentral GA handler to support Tracking ID editing and disconnection.
* TWEAK: In the free version, if the only difference between backup and site URLs is http/https, then show a different message to make the situation clearer
* TWEAK: Make the UPDRAFTPLUS_IPV4_ONLY constant take effect more widely
* TWEAK: Do not duplicate remote instance ID records in the backup history when re-scanning
* TWEAK: Keep the remote instance ID list consistent with the remote service list when re-scanning
* TWEAK: Prevent a PHP notice that could appear for locally stored backups in UpdraftPlus::get_storage_objects_and_ids()
= 1.13.7 - 06/Sep/2017 =
* FIX: UpdraftCentral connectivity for various operations restored (regression in 1.13.6)
* FIX: No error message was being shown when a backup to local storage was missing upon restore
* COMPATIBILITY: Replace uses of the deprecated (PHP 7.2+) each() function
* TRANSLATION: Portuguese (Portugal) and Romanian translations are now complete and supplied from wordpress.org, so can be removed from the free plugin zip
* TWEAK: Fix some wrongly-called translation functions, and pull more known strings into the Premium version
* TWEAK: Remove the legacy parameter for setting storage upload job status data (only useful for version downgrades of more than 1 release during in-progress backups)
* TWEAK: Exclude some unnecessary build and unused files from the release zip (reduce disk space and download size)
= 1.13.6 - 05/Sep/2017 =
* FEATURE: Google Drive authorisation now goes via an officially registered app for easier connections to Google Drive.
* FEATURE: Include commands for UpdraftCentral's (https://updraftcentral.com) Google Analytics management facility (check the changelog.txt for the release)
* FIX: Correct handling of OneDrive folder names featuring spaces (possibly a regression/change in the handling at OneDrive's end)
* TWEAK: Prevent messy layout when the last log message is very long
* TWEAK: Log catchable fatal errors and exceptions during backup in PHP 7
* TWEAK: Log catchable fatal errors and exceptions during restore in PHP 7
* TWEAK: Log catchable fatal errors and exceptions during backup download in PHP 7
* TWEAK: Reduce amount of database logging during existing zip analysis, database backup and pruning stages
* TWEAK: In AJAX/JSON responses, automatically detect and handle corrupted output (e.g. setups where PHP debugging notices are configured to come to the browser)
* TWEAK: Catches and more elegantly handles errors when a settings import file cannot be JSON-parsed
* TWEAK: Request list of available add-ons (paid versions) from the mothership in current format
* TWEAK: Added custom backup message parameter backupnow_message in function updraft_backupnow_inpage_go()
* TWEAK: General code tidy-up, making older code conform to our current standards
* TWEAK: Add the possibility of passing back associated data with test results, and log it in the browser console
* TWEAK: When carrying out a remote storage test, pass the state of the 'debug' setting
* TWEAK: When testing SFTP settings, if debug is activated, activate debug logging and pass the results back in the event of test failure
* TWEAK: Optimise away a database query in the case of no UpdraftCentral keys existing
* TWEAK: Removed "Reduced Redundancy" storage class from Amazon S3 remote storage options, because Amazon are deprecating it (and it now costs more, for inferior redundancy - https://updraftplus.com/forums/topic/amazon-is-phasing-out-reduced-redundancy-storage/)
* TWEAK: Backup files missing error message corrected
* TWEAK: Add the handlebars-js and xamin/handlebars.php libraries
* TWEAK: The FTP storage module has been ported to outputting its configuration via a template
* TWEAK: Introduce internal API and port all job data saved in storage modules to be instance-local
= 1.13.5 - 08/Aug/2017 =
* TWEAK: Manage phpseclib through composer
* TWEAK: Do less logging to database when resuming and noticing already-processed tables (saves resources)
* TWEAK: Returns comment status when updating comments from UpdraftCentral
* TWEAK: Update plugin-updates-checker library to current (4.2), and manage via composer, replacing bundled copy in the build source
* TWEAK: Replace uses of create_function(), which is deprecated on PHP 7.2
* TWEAK: Replace deprecated constructors (PHP 7+) in webdav module
* TWEAK: Documentation showing plugin developers how easy it is to add in-page backups to their plugin: https://updraftplus.com/add-take-backup-functionality-plugin/
* TWEAK: Make the UpdraftCentral updates checking able to cope with a wider range of third-party schemes
* TWEAK: General code tidy-up, making older code conform to our current standards
* TWEAK: Minor version updates of some bundled libraries
* TWEAK: Produce and use minified resources (CSS/JS) where available
* TWEAK: Update class-udrpc to latest (1.4.14) which removes a conflict with other code that may interact with CORS OPTIONS requests
* TWEAK: Escape log lines when sending for display (theoretically an XSS security issue, but to achieve a successful attack, someone would have to first get something malicious into the log file, which is difficult as there are not many places where foreign input can end up in the log file - e.g. hack into Dropbox and cause Dropbox to send you back malicious HTML in an error message - and then be able to persuade you to both take a backup triggering the problem and then view the log file in your WP dashboard)
* TWEAK: Update Google Cloud bucket locations
= 1.13.4 - 08/Jun/2017 =
* FIX: Import function had a regression and was not coping with all formats
* TWEAK: When the import function failed, the error was not shown to the user
= 1.13.3 - 07/Jun/2017 =
* FIX: Revert Dropbox authentication change in 1.13.2, which was not working on all sites
= 1.13.2 - 07/Jun/2017 =
* TWEAK: Marked as tested and compatible on WordPress 4.8
* TWEAK: Dropbox authentication flow can now use POST for the final step, side-stepping (arbitrary) parameter length restrictions on some Apache mod_security setups
* TWEAK: Prevent a possible PHP notice when curl is not present
* TWEAK: Point Clef users towards Keyy
* TWEAK: Do not open an alert box when the user changes their site ID in 'Advanced Tools'
* TWEAK: Fix parameters to updraft_check_overduecrons() JS function
= 1.13.1 - 09/May/2017 =
* REFACTOR: Completed re-factoring of the remote storage modules, so that now all remote storage code has completed this current stage of re-factoring (more to come in future - laying the foundation for a significant new feature)
* FIX: Added a nonce to the Dropbox deauth link. This is a minor security issue - someone personally targeting you, who knew that you were logged in to your WordPress admin, and who could persuade you to visit a personally-crafted web page, could cause the connection between UpdraftPlus and your Dropbox to be broken. The only impact of this is that the sending of your next backup to Dropbox would fail, and you would be alerted about the need to re-connect.
* FIX: Import settings now handle the new remote storage options format
* FIX: The zip file browser was not working in free versions
* TWEAK: Added a version check when saving settings to prevent errors or lost settings
* TWEAK: 'Existing Backups' table now shows an icon for each remote destination that the backup was sent to
* TWEAK: Update SSL CA certificates file
* TWEAK: If, when uploading to S3, a file is not found, handle it slightly more elegantly
* TWEAK: Work with some WebDAV servers that previously sent empty responses to OPTIONS requests
= 1.12.40 - 01/Apr/2017 =
* TWEAK: The in-page log file display had stopped continuously updating in 1.12.32
* FIX: In some circumstances, settings for the storage modules refactored in 1.12.37 could fail to show
* FIX: The free version of 1.12.37/38 in some circumstances could fail to complete Dropbox authentication
= 1.12.38 - 31/Mar/2017 =
* TWEAK: Dropbox API v2 call to de-authorise a token was failing
* FIX: Prevent a fatal error when attempting to use a backup method with no options set
= 1.12.37 - 31/Mar/2017 =
* FEATURE: Browse the contents of a backup from within your WordPress dashboard, and (with Premium) download individual files from it
* FIX: Fix an issue that could occasionally cause corruption of interrupted Dropbox backups. All Dropbox users are recommended to update asap.
* TWEAK: Remove debugging statement inadvertently left in 1.12.36
* TWEAK: Re-factored remote storage handlers via add-ons so that there was a cleaner and more consistent class hierarchy (preparation for future improvements). N.B. If you subsequently downgrade to an older version of UpdraftPlus, you will need to re-enter the settings for some remote storage options.
* TWEAK: List of checksum algorithms run over backups and logged now includes SHA256, and is filterable (SHA1 now considered deprecated)
* TWEAK: Allow chunked database encryption to try and resume in the event of an error
* TWEAK: Improve the premium/extension tab content
* TWEAK: Fix an issue whereby the UpdraftVault settings section could show a bogus problem with checking quota immediately after initial setup
* TWEAK: When requesting a download, work around buggy browser/server that continued after Connection: close
* TWEAK: Improve the UI experience when downloading a log file for display fails
* TWEAK: Prevent PHP notice if another plugin cancels a cron event
* TWEAK: Tweak semaphore handling and enhance logging
Older changes are found <a href="https://plugins.svn.wordpress.org/updraftplus/trunk/changelog-old.txt">in the changelog-old.txt file in the plugin directory.</a>
== Screenshots ==
1. Main dashboard - screenshots are from UpdraftPlus Premium, so may reference some features that are not part of the free version
2. Configuring your backups
3. Take a backup
4. Choose which components to restore
5. Restoration shows as successful
6. To migrate, first click 'Database', 'Plugins' etc. to download these backups to your local machine.
7. On the destination site, 'upload backup files' from the source site to restore and migrate to the new destination.
== License ==
Copyright 2011-24 David Anderson
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
Non-English translators are provided by volunteers, and wordpress.org does not give plugin developers control over their translations; thus relying on them is at your own risk; UpdraftPlus cannot guarantee that translations from the original English are accurate.
We recognise and thank those mentioned at https://updraftplus.com/acknowledgements/ for code and/or libraries used and/or modified under the terms of their open source licences.
== Upgrade Notice ==
* 1.26.5: Important security fix, plus various fixes and small tweaks - see the changelog for details. A recommended update for all; please update immediately.
home/studionolh/www/wp-content/plugins/wp-super-cache/readme.txt 0000644 00000173760 15233577722 0021143 0 ustar 00 # WP Super Cache #
* Contributors: donncha, automattic
* Tags: performance, caching, wp-cache, wp-super-cache, cache
* Tested up to: 6.0
* Stable tag: 1.7.9
* Requires at least: 3.1
* Requires PHP: 5.2.4
* License: GPLv2 or later
* License URI: https://www.gnu.org/licenses/gpl-2.0.html
A very fast caching engine for WordPress that produces static html files.
## Description ##
This plugin generates static html files from your dynamic WordPress blog. After a html file is generated your webserver will serve that file instead of processing the comparatively heavier and more expensive WordPress PHP scripts.
The static html files will be served to the vast majority of your users:
* Users who are not logged in.
* Users who have not left a comment on your blog.
* Or users who have not viewed a password protected post.
99% of your visitors will be served static html files. One cached file can be served thousands of times. Other visitors will be served custom cached files tailored to their visit. If they are logged in, or have left comments those details will be displayed and cached for them.
The plugin serves cached files in 3 ways (ranked by speed):
1. Expert. The fastest method is by using Apache mod_rewrite (or whatever similar module your web server supports) to serve "supercached" static html files. This completely bypasses PHP and is extremely quick. If your server is hit by a deluge of traffic it is more likely to cope as the requests are "lighter". This does require the Apache mod_rewrite module (which is probably installed if you have custom permalinks) and a modification of your .htaccess file which is risky and may take down your site if modified incorrectly.
2. Simple. Supercached static files can be served by PHP and this is the recommended way of using the plugin. The plugin will serve a "supercached" file if it exists and it's almost as fast as the mod_rewrite method. It's easier to configure as the .htaccess file doesn't need to be changed. You still need a custom permalink. You can keep portions of your page dynamic in this caching mode.
3. WP-Cache caching. This is mainly used to cache pages for known users, URLs with parameters and feeds. Known users are logged in users, visitors who leave comments or those who should be shown custom per-user data. It's the most flexible caching method and slightly slower. WP-Cache caching will also cache visits by unknown users if supercaching is disabled. You can have dynamic parts to your page in this mode too. This mode is always enabled but you can disable caching for known users, URLs with parameters, or feeds separately. Set the constant "DISABLE_SUPERCACHE" to 1 in your wp-config.php if you want to only use WP-Cache caching.
If you're not comfortable with editing PHP files then use simple mode. It's easy to set up and very fast.
### Recommended Settings ###
1. Simple caching.
2. Compress pages.
3. Don't cache pages for known users.
4. Cache rebuild.
5. CDN support.
6. Extra homepage checks.
Garbage collection is the act of cleaning up cache files that are out of date and stale. There's no correct value for the expiry time but a good starting point is 1800 seconds.
Consider deleting the contents of the "Rejected User Agents" text box and allow search engines to cache files for you.
Preload as many posts as you can and enable "Preload Mode". Garbage collection of old cached files will be disabled. If you don't care about sidebar widgets updating often set the preload interval to 2880 minutes (2 days) so all your posts aren't recached very often. When the preload occurs the cache files for the post being refreshed is deleted and then regenerated. Afterwards a garbage collection of all old files is performed to clean out stale cache files.
Even with preload mode enabled cached files will still be deleted when posts are modified or comments made.
### Development ###
* Active development of this plugin is handled [on GitHub](https://github.com/Automattic/wp-super-cache).
* Translation of the plugin into different languages is on the [translation page](https://translate.wordpress.org/projects/wp-plugins/wp-super-cache).
### Documentation ###
If you need more information than the following, you can have a look at the [Developer documentation](https://odd.blog/wp-super-cache-developers/).
#### Preloading ####
You can generate cached files for the posts, categories and tags of your site by preloading. Preloading will visit each page of your site generating a cached page as it goes along, just like any other visitor to the site. Due to the sequential nature of this function, it can take some time to preload a complete site if there are many posts.
To make preloading more effective it can be useful to disable garbage collection so that older cache files are not deleted. This is done by enabling "Preload Mode" in the settings. Be aware however, that pages will go out of date eventually but that updates by submitting comments or editing posts will clear portions of the cache.
#### Garbage Collection ####
Your cache directory fills up over time, which takes up space on your server. If space is limited or billed by capacity, or if you worry that the cached pages of your site will go stale then garbage collection has to be done. Garbage collection happens on a regular basis and deletes old files in the cache directory. On the advanced settings page you can specify:
1. Cache timeout. How long cache files are considered fresh for. After this time they are stale and can be deleted.
2. Scheduler. Setup how often garbage collection should be done.
3. Notification emails. You can be informed on garbage collection job progress.
There's no right or wrong settings for garbage collection. It depends on your own site.
If your site gets regular updates, or comments then set the timeout to 1800 seconds, and set the timer to 600 seconds.
If your site is mostly static you can disable garbage collection by entering 0 as the timeout, or use a really large timeout value.
The cache directory, usually wp-content/cache/ is only for temporary files. Do not ever put important files or symlinks to important files or directories in that directory. They will be deleted if the plugin has write access to them.
#### CDN ####
A Content Delivery Network (CDN) is usually a network of computers situated around the world that will serve the content of your website faster by using servers close to you. Static files like images, Javascript and CSS files can be served through these networks to speed up how fast your site loads. You can also create a "poor man's CDN" by using a sub domain of your domain to serve static files too.
[OSSDL CDN off-linker](https://wordpress.org/plugins/ossdl-cdn-off-linker/) has been integrated into WP Super Cache to provide basic CDN support. It works by rewriting the URLs of files (excluding .php files) in wp-content and wp-includes on your server so they point at a different hostname. Many CDNs support [origin pull](https://www.google.com/search?hl=en&q=%22origin+pull%22). This means the CDN will download the file automatically from your server when it's first requested, and will continue to serve it for a configurable length of time before downloading it again from your server.
Configure this on the "CDN" tab of the plugin settings page. This is an advanced technique and requires a basic understanding of how your webserver or CDNs work. Please be sure to clear the file cache after you configure the CDN.
#### REST API ####
There are now REST API endpoints for accessing the settings of this plugin. You'll need to be authenticated as an admin user with permission to view the settings page to use it. This has not been documented yet but you can find all the code that deals with this in the "rest" directory.
#### Custom Caching ####
It is now possible to hook into the caching process using the add_cacheaction() function.
Three hooks are available:
1. 'wp_cache_get_cookies_values' - modify the key used by WP Cache.
2. 'add_cacheaction' - runs in phase2. Allows a plugin to add WordPress hooks.
3. 'cache_admin_page' - runs in the admin page. Use it to modify that page, perhaps by adding new configuration options.
There is one regular WordPress filter too. Use the "do_createsupercache" filter
to customize the checks made before caching. The filter accepts one parameter.
The output of WP-Cache's wp_cache_get_cookies_values() function.
WP Super Cache has its own plugin system. This code is loaded when WP Super Cache loads and can be used to change how caching is done. This is before most of WordPress loads so some functionality will not be available. Plugins can be located anywhere that PHP can load them. Add your own plugin either:
* by putting your plugin in the wp-content/plugins/wp-super-cache-plugins directory, or
* by calling wpsc_add_plugin( $name ) where $name is the full filename and path to the plugin. You only need to call that function once to add it. Use wpsc_delete_plugin( $name ) to remove it from the list of loaded plugins.
The cookies WP Super Cache uses to identify "known users" can be modified now by adding the names of those cookies to a list in the plugin configuration. Use wpsc_add_cookie( $name ) to add a new cookie, and wpsc_delete_cookie( $name ) to remove it. The cookie names also modify the mod_rewrite rules used by the plugin but I recommend using Simple mode caching to avoid complications with updating the .htaccess file.
The cookie name and value are used to differenciate users so you can have one cookie, but different values for each type of user on your site for example. They'll be served different cache files.
See [plugins/searchengine.php](https://github.com/Automattic/wp-super-cache/blob/4cda5c0f2218e40e118232b5bf22d227fb3206b7/plugins/searchengine.php) as an example I use for my [No Adverts for Friends](https://odd.blog/no-adverts-for-friends/) plugin.
### Troubleshooting ###
If things don't work when you installed the plugin here are a few things to check:
1. Is wp-content writable by the web server?
2. Is there a wp-content/wp-cache-config.php ? If not, copy the file wp-super-cache/wp-cache-config-sample.php to wp-content/wp-cache-config.php and make sure WPCACHEHOME points at the right place.
3. Is there a wp-content/advanced-cache.php ? If not, then you must copy wp-super-cache/advanced-cache.php into wp-content/. You must edit the file and change the path so it points at the wp-super-cache folder.
4. If pages are not cached at all, remove wp-content/advanced-cache.php and recreate it, following the advice above.
5. Make sure the following line is in wp-config.php and it is ABOVE the "require_once(ABSPATH.'wp-settings.php');" line:
`define( 'WP_CACHE', true );`
6. Try the Settings->WP Super Cache page again and enable cache.
7. Look in wp-content/cache/supercache/. Are there directories and files there?
8. Anything in your php error_log?
9. If your browser keeps asking you to save the file after the super cache is installed you must disable Super Cache compression. Go to the Settings->WP Super Cache page and disable it there.
10. The plugin does not work very well when PHP's safe mode is active. This must be disabled by your administrator.
11. If pages are randomly super cached and sometimes not, your blog can probably be viewed with and without the "www" prefix on the URL. You should choose one way and install the [Enforce www preference](http://txfx.net/code/wordpress/enforce-www-preference/) plugin if you are using an old WordPress install. The latest versions redirect themselves (you should always be running the latest version of WordPress anyway!)
12. Private Server users at Dreamhost should edit wp-content/wp-cache-config.php and set the cache dir to "/tmp/" if they are getting errors about increasing CPU usage. See this [discussion](https://wordpress.org/support/topic/145895?replies=42) for more.
13. File locking errors such as "failed to acquire key 0x152b: Permission denied in..." or "Page not cached by WP Super Cache. Could not get mutex lock." are a sign that you may have to use file locking. Edit wp-content/wp-cache-config.php and uncomment "$use_flock = true" or set $sem_id to a different value. You can also disable file locking from the Admin screen as a last resort.
14. Make sure cache/wp_cache_mutex.lock is writable by the web server if using coarse file locking.
15. The cache folder cannot be put on an NFS or Samba or NAS share. It has to be on a local disk. File locking and deleting expired files will not work properly unless the cache folder is on the local machine.
16. Garbage collection of old cache files won't work if WordPress can't find wp-cron.php. If your hostname resolves to 127.0.0.1 it could be preventing the garbage collection from working. Check your access_logs for wp-cron.php entries. Do they return a 404 (file not found) or 200 code? If it's 404 or you don't see wp-cron.php anywhere WordPress may be looking for that script in the wrong place. You should speak to your server administator to correct this or edit /etc/hosts on Unix servers and remove the following line. Your hostname must resolve to the external IP address other servers on the network/Internet use. See http://yoast.com/wp-cron-issues/ for more. A line like "127.0.0.1 localhost localhost.localdomain" is ok.
`127.0.0.1 example.com`
17. If old pages are being served to your visitors via the supercache, you may be missing Apache modules (or their equivalents if you don't use Apache). 3 modules are required: mod_mime, mod_headers and mod_expires. The last two are especially important for making sure browsers load new versions of existing pages on your site.
18. The error message, "WP Super Cache is installed but broken. The path to wp-cache-phase1.php in wp-content/advanced-cache.php must be fixed!" appears at the end of every page. Open the file wp-content/advanced-cache.php in your favourite editor. Is the path to wp-cache-phase1.php correct? This file will normally be in wp-content/plugins/wp-super-cache/. If it is not correct the caching engine will not load.
19. Caching doesn't work. The timestamp on my blog keeps changing when I reload. Check that the path in your .htaccess rules matches where the supercache directory is. You may have to hardcode it. Try disabling supercache mode.
20. If supercache cache files are generated but not served, check the permissions on all your wp-content/cache/supercache folders (and each of wp-content cache and supercache folders) and wp-content/cache/.htaccess. If your PHP runs as a different user to Apache and permissions are strict Apache may not be able to read the PHP generated cache files. To fix you must add the following line to your wp-config.php (Add it above the WP_CACHE define.) Then clear your cache.
`umask( 0022 );`
21. If you see garbage in your browser after enabling compression in the plugin, compression may already be enabled in your web server. In Apache you must disable mod_deflate, or in PHP zlib compression may be enabled. You can disable that in three ways. If you have root access, edit your php.ini and find the zlib.output_compression setting and make sure it's "Off" or add this line to your .htaccess:
`php_flag zlib.output_compression off`
If that doesn't work, add this line to your wp-config.php:
`ini_set('zlib.output_compression', 0);`
22. The "white screen of death" or a blank page when you visit your site is almost always caused by a PHP error but [it may also be caused by APC](http://www.johnberns.com/2010/03/19/wp-super-cache-blank-page-problem-fixed/). Disable that PHP extension if you have trouble and replace with eAccelerator or Xcache.
23. After uninstalling, your permalinks may break if you remove the WordPress mod_rewrite rules too. Regenerate those rules by visiting the Settings->Permalink page and saving that form again.
24. If your blog refuses to load make sure your wp-config.php is correct. Are you missing an opening or closing PHP tag?
25. Your front page is ok but posts and pages give a 404? Go to Settings->permalinks and click "Save" once you've selected a custom permalink structure. You may need to manually update your .htaccess file.
26. If certain characters do not appear correctly on your website your server may not be configured correctly. You need to tell visitors what character set is used. Go to Settings->Reading and copy the 'Encoding for pages and feeds' value. Edit the .htaccess file with all your Supercache and WordPress rewrite rules and add this at the top, replacing CHARSET with the copied value. (for example, 'UTF-8')
`AddDefaultCharset CHARSET`
27. Use [Cron View](https://wordpress.org/plugins/cron-view/) to help diagnose garbage collection and preload problems. Use the plugin to make sure jobs are scheduled and for what time. Look for the wp_cache_gc and wp_cache_full_preload_hook jobs.
18. The error message, "WP Super Cache is installed but broken. The constant WPCACHEHOME must be set in the file wp-config.php and point at the WP Super Cache plugin directory." appears at the end of every page. You can delete wp-content/advanced-cache.php and reload the plugin settings page or edit wp-config.php and look for WPCACHEHOME and make sure it points at the wp-super-cache folder. This will normally be wp-content/plugins/wp-super-cache/ but you'll likely need the full path to that file (so it's easier to let the settings page fix it). If it is not correct the caching engine will not load.
19. If your server is running into trouble because of the number of semaphores used by the plugin it's because your users are using file locking which is not recommended (but is needed by a small number of users). You can globally disable file locking by defining the constant WPSC_DISABLE_LOCKING, or defining the constant WPSC_REMOVE_SEMAPHORE so that sem_remove() is called after every page is cached but that seems to cause problems for other processes requesting the same semaphore. Best to disable it.
20. Set the variable $htaccess_path in wp-config.php or wp-cache-config.php to the path of your global .htaccess if the plugin is looking for that file in the wrong directory. This might happen if you have WordPress installed in an unusual way.
## Installation ##
Install like any other plugin, directly from your plugins page but make sure you have custom permalinks enabled. Go to the plugin settings page at Settings->WP Super Cache and enable caching.
### How to uninstall WP Super Cache ###
Almost all you have to do is deactivate the plugin on the plugins page. The plugin should clean up most of the files it created and modified, but it doesn't as yet remove the mod_rewrite rules from the .htaccess file. Look for the section in that file marked by SuperCache BEGIN and END tags. The plugin doesn't remove those because some people add the WordPress rules in that block too.
To manually uninstall:
1. Turn off caching on the plugin settings page and clear the cache.
2. Deactivate the plugin on the plugins page.
3. Remove the WP_CACHE define from wp-config.php. It looks like `define( 'WP_CACHE', true );`
4. Remove the Super Cache mod_rewrite rules from your .htaccess file.
5. Remove the files wp-content/advanced-cache.php and wp-content/wp-cache-config.php
6. Remove the directory wp-content/cache/
7. Remove the directory wp-super-cache from your plugins directory.
### If all else fails and your site is broken ###
1. Remove the WP_CACHE define from wp-config.php. It looks like `define( 'WP_CACHE', true );`
2. Remove the rules (see above) that the plugin wrote to the .htaccess file in your root directory.
3. Delete the wp-super-cache folder in the plugins folder.
4. Optionally delete advanced-cache.php, wp-cache-config.php and the cache folder in wp-content/.
## Frequently Asked Questions ##
### How do I know my blog is being cached? ###
Go to Settings -> WP Super Cache and look for the "Cache Tester" form on the easy settings page. Click "Test Cache" and the plugin will request the front page of the site twice, comparing a timestamp on each to make sure they match.
If you want to do it manually, enable debugging in the plugin settings page and load the log file in a new browser tab. Then view your blog while logged in and logged out. You should see activity in the log. View the source of any page on your site. When a page is first created, you'll see the text "Dynamic page generated in XXXX seconds." and "Cached page generated by WP-Super-Cache on YYYY-MM-DD HH:MM:SS" at the end of the source code. On reload, a cached page will show the same timestamp so wait a few seconds before checking.
If Supercaching is disabled and you have compression enabled, the text "Compression = gzip" will be added. If compression is disabled and the page is served as a static html file, the text "super cache" will be added. The only other way to check if your cached file was served by PHP script or from the static cache is by looking at the HTTP headers. PHP cached pages will have the header "WP-Super-Cache: Served supercache file from PHP". WPCache cached files will have the header, "WP-Super-Cache: Served WPCache cache file". You should also check your cache directory in wp-content/cache/supercache/hostname/ for static cache files.
If the plugin rules are missing from your .htaccess file, the plugin will attempt to serve the super cached page if it's found. The header "WP-Super-Cache: Served supercache file from PHP" if this happens.
The pagespeed module for Apache may cause problems when testing. Disable it if you notice any problems running the cache tester.
### How do I disable Supercaching? ###
If you only want to use the WP-Cache engine then edit your wp-config.php or create an mu-plugin that sets the constant 'DISABLE_SUPERCACHE' to 1.
### WP-Cache vs Supercache files ###
All cache files are stored in wp-content/cache/supercache/HOSTNAME/ where HOSTNANE is your domain name. The files are stored in directories matching your site's permalink structure. Supercache files are index.html or some variant of that, depending on what type of visitor hit the blog. Other files are named wp-cache-XXXXXXXXXXXXXXXXX.php. Associated meta filesnames start with "meta". Those files contain information about the cached file. These files are generated by the "WPCache caching" engine in the plugin.
### Will comments and other dynamic parts of my blog update immediately? ###
Comments will show as soon as they are moderated, depending on the comment policy of the blog owner. Other dynamic elements on a page may not update unless they are written in Javascript, Flash, Java or another client side browser language. The plugin really produces static html pages. No PHP is executed when those pages are served. "Popularity Contest" is one such plugin that will not work.
### Will the Super Cache compression slow down my server? ###
No, it will do the opposite. Super Cache files are compressed and stored that way so the heavy compression is done only once. These files are generally much smaller and are sent to a visitor's browser much more quickly than uncompressed html. As a result, your server spends less time talking over the network which saves CPU time and bandwidth, and can also serve the next request much more quickly.
### How do I make certain parts of the page stay dynamic? ###
Note: this functionality is disabled by default. You will have to enable it on the Advanced Settings page.
There are 2 ways of doing this. You can use Javascript to draw the part of the page you want to keep dynamic. That's what Google Adsense and many widgets from external sites do and is the recommended way. Or you can use a WP Super Cache filter to do the job but you can't use mod_rewrite mode caching. You have to use the "simple" delivery method or disable supercaching.
WP Super Cache 1.4 introduced a cacheaction filter called wpsc_cachedata. The cached page to be displayed goes through this filter and allows modification of the page. If the page contains a placeholder tag the filter can be used to replace that tag with your dynamically generated html.
The function that hooks on to the wpsc_cachedata filter should be put in a file in the WP Super Cache plugins folder unless you use the late_init feature. An example plugin is included. Edit [dynamic-cache-test.php](http://svn.wp-plugins.org/wp-super-cache/trunk/plugins/dynamic-cache-test.php) to see the example code.
There are two example functions there. There's a simple function that replaces a string (or tag) you define when the cached page is served. The other example function uses an output buffer to generate the dynamic content. Due to a limitation in how PHP works the output buffer code MUST run before the wpsc_cachedata filter is hit, at least for when a page is cached. It doesn't matter when serving cached pages. See [this post](https://odd.blog/y/6j) for a more technical and longer explanation.
To execute WordPress functions you must enable the 'Late init' feature on the advanced settings page.
### How do I delay serving the cache until the "init" action fires? ###
Cached files are served before almost all of WordPress is loaded. While that's great for performance it's a pain when you want to extend the plugin using a core part of WordPress. Enable 'Late init' mode on the Advanced settings page and cached files will be served when "init" fires. WordPress and it's plugins will be loaded now.
### Why don't WP UserOnline, Popularity Contest, WP Postratings or plugin X not work or update on my blog now? ###
This plugin caches entire pages but some plugins think they can run PHP code every time a page loads. To fix this, the plugin needs to use Javascript/AJAX methods or the wpsc_cachedata filter described in the previous answer to update or display dynamic information.
### Why do my WP Super Cache plugins disappear when I upgrade the plugin? ###
WordPress deletes the plugin folder when it updates a plugin. This is the same with WP Super Cache so any modified files in wp-super-cache/plugins/ will be deleted. You can put your custom plugins in a different directory in a number of ways. You can define the variable $wp_cache_plugins_dir in wp-config.php or wp-content/wp-cache-config.php and point it at a directory outside of the wp-super-cache folder. The plugin will look there for it's plugins. Or if you distribute a plugin that needs to load early you can use the function `wpsc_add_plugin( $filename )` to add a new plugin wherever it may be. Use `wpsc_delete_plugin( $filename )` to remove the plugin file. See [#574](https://github.com/Automattic/wp-super-cache/pull/574/) or [this post](https://odd.blog/2017/10/25/writing-wp-super-cache-plugins/) on writing WP Super Cache plugins.
### What does the Cache Rebuild feature do? ###
When a visitor leaves a comment the cached file for that page is deleted and the next visitor recreates the cached page. A page takes time to load so what happens if it receives 100 visitors during this time? There won't be a cached page so WordPress will serve a fresh page for each user and the plugin will try to create a cached page for each of those 100 visitors causing a huge load on your server. This feature stops this happening. The cached page is not cleared when a comment is left. It is marked for rebuilding instead. The next visitor within the next 10 seconds will regenerate the cached page while the old page is served to the other 99 visitors. The page is eventually loaded by the first visitor and the cached page updated. See [this post](https://odd.blog/2009/01/23/wp-super-cache-089/) for more.
### Why doesn't the plugin cache requests by search engine bots by default? ###
Those bots usually only visit each page once and if the page is not popular there's no point creating a cache file that will sit idle on your server. However you can allow these visits to be cached by removing the list of bots from "Rejected User Agents" on the Advanced settings page.
### A category page is showing instead of my homepage ###
A tiny proportion of websites will have problems with the following configuration:
1. Uses a static page for the front page.
2. Uses /%category%/%postname%/ permalink structure.
Sometimes a category page is cached as the homepage of the site instead of the static page. I can't [replicate the problem](https://wordpress.org/support/topic/237415/page/2?replies=38) but a simple solution is to use the "Simple" mode. You can also enable "Extra homepage checks" on the Advanced Settings page.
### Why do I get warnings about caching from http://ismyblogworking.com/ ###
"Your blog doesn't support client caching (no 304 response to If-modified-since)."
"Your feed doesn't support caching (no 304 response to If-modified-since)"
Supercache doesn't support 304 header checks in Expert mode but does support it in Simple mode. This is caching done by your browser, not the server. It is a check your browser does to ask the server if an updated version of the current page is available. If not, it doesn't download the old version again. The page is still cached by your server, just not by your visitors' browsers.
Try the Cacheability Engine at http://www.ircache.net/cgi-bin/cacheability.py or https://redbot.org/ for further analysis.
### How should I best use the utm_source tracking tools in Google Analytics with this plugin? ###
That tracking adds a query string to each url linked from various sources like Twitter and feedreaders. Unfortunately it stops pages being supercached. See [Joost's comment here](https://odd.blog/remove-unused-utmsource-urls/#comment-672813) for how to turn it into an anchor tag which can be supercached.
### The plugin complains that wp-content is writable! htdocs is writable! ###
It's not good when the web server can write to these directories but sometimes shared hosting accounts are set up in this way to make administration easier. Use `chmod 755 directory` to fix the permissions or find the permissions section of your ftp client. This [Google search](https://www.google.com/search?sourceid=chrome&ie=UTF-8&q=ftp+fix+directory+permissions+755) will lead you to more information on this topic and there's also [this codex page](https://codex.wordpress.org/Changing_File_Permissions) too. Unfortunately some hosts require that those directories be writable. If that's the case just ignore this warning.
### How do I delete the WP_CACHE define from wp-config.php? ###
Load your desktop ftp client and connect to your site. Navigate to the root (or the directory below it) of your site where you'll find wp-config.php. Download that file and edit it in a text editor. Delete the line `define( 'WP_CACHE', true );` and save the file. Now upload it, overwriting the wp-config.php on your server.
### How do I delete the Super Cache rules from the .htaccess file? ###
Load your desktop ftp client and connect to your site. You may need to enable "Show hidden files" in the preferences of the ftp client. Navigate to the root of your site where you'll find the .htaccess file. Download that file and edit it in a text editor. Delete the lines between "# BEGIN WPSuperCache" and "# END WPSuperCache" and save the file. Now upload it, overwriting the .htaccess file on your server.
### How do I change file permissions? ###
This [page](https://codex.wordpress.org/Changing_File_Permissions) on the WordPress Codex explains everything you need to know about file permissions on your server and various ways of changing them.
### Why do I get load spikes when new posts are made? ###
You may have the "clear all cached files when new posts are made" option set. Clearing those files can take time plus your visitors will now be visiting uncached pages. Are you using Google Analytics campaign tracking with utm_source in the url? Those pages aren't cached. See the question, "How should I best use the utm_source tracking tools in Google Analytics with this plugin" above for how to use them properly.
Cached pages have to be refreshed when posts are made. Perhaps your server just isn't up to the job of serving the amount of traffic you get. Enable the "cache rebuild" feature as that may help.
### How many pages can I cache? ###
The only real limit are limits defined by your server. For example, EXT2 and EXT3 allow a maximum of 31,999 sub directories so if you have a flat permalink structure (like /%POSTNAME%/) and more than 32,000 posts you may run into problems. Likewise, if you run a multisite network and have more than 31,999 sites (blogs) you won't be able to cache all of them. Realistically if you had that many active sites you wouldn't be running on one server.
### I can see that the www version of my site is cached separately. How do I stop that? ###
WordPress should redirect to the canonical URL of your site but if it doesn't, add this to your .htaccess above the Supercache and WordPress rules. Change example.com to your own hostname.
`RewriteCond %{HTTP_HOST} www.example.com$ [NC]`
`RewriteRule ^(.*)$ https://example.com/$1 [L,R=301]`
### How do I serve cached mobile pages to clients on small screens like phones and tablets? ###
Your theme is probably responsive which means it resizes the page to suit whatever device is displaying the page. If it's not responsive, you'll have to use a separate mobile plugin to render a page formatted for those visitors. The following plugins have been tested but YMMV depending on mobile client. You'll have to enable mobile browser support as well on the Advanced settings page.
* [Jetpack's Mobile Theme Module](https://wordpress.org/plugins/jetpack/)
* [WPTouch](https://wordpress.org/plugins/wptouch/)
* [WordPress Mobile Edition](https://wordpress.org/plugins/wordpress-mobile-edition/)
* [WordPress Mobile Pack](https://wordpress.org/plugins/wordpress-mobile-pack/) (can't have "Don't cache pages for known users." enabled)
## Changelog ##
### 1.7.9 ###
* Fix nonces used by "Delete Cache" button and remove JS from it on the frontend admin bar.
* Define the constant WPSCDISABLEDELETEBUTTON to disable the "Delete Cache" button in the admin bar.
### 1.7.8 ###
* Change the admin bar "Delete Cache" button into an AJAX link #808 #810
* Fix link to log file in custom WordPress structure #807
* Add an auto updating preload message. #811 #816
* Use REQUEST_URI instead of GET to check GET status. #813
* Add commonWP and disclaimer to "recommended links" #812
* Hide warnings in case files deleted #814
* Remove the GET param when removing tracking params #818
* Check that post is private to unpublish it and clear cache 2249e58e6f585d936c0993e9d18e6382fa976a66
* Check $gc_flag was opened before closing it. #819
### 1.7.7 ###
* Fixes to settings page
### 1.7.6 ###
* Fix for PHP < 7.3
### 1.7.5 ###
* Move the text of the settings pages into separate files. #791
* Allow editors to delete all the cache files. #793
* Only clear the cache from the current site, not the whole network (admin bar link). #794
* Check $cache_path is somewhat sane. #797
* realpath returns false if directory not found. #798
* Don't reject bots for new installs. They "preload pages" too. #800
### 1.7.4 ###
* Make config file path configurable, props @sebastianpopp #755
* Stop a very rare/difficult attack when updating wp-config.php, props @guyasyou for reporting. #780
* Add textbox to add tracking parameters to ignore when caching. props @markfinst, @radex02 #777
* Add "Rejected Cookies" setting to the advanced settings page. #774
### 1.7.3 ###
* Sanitize the settings that are written to the config file #763
* Fix the display of "direct cached" example urls in some circumstance. #766
### 1.7.2 ###
* Fixed authenticated RCE in the settings page. Props @m0ze
* Small bug fixes.
### 1.7.1 ###
* Minor fixes to docs. #709 #645
* Fixed typo on cache contents page. #719
* Fixed array index warning. #724
* Updated yellow box links. #725
### 1.7.0 ###
* Added "wpsc_cdn_urls" filter to modify the URLs used to rewrite URLs. #697
* Fixed CDN functionality for logged in users. #698
* Disable settings that don't work in Expert mode. #699
* Don't enable mobile support by default, but it can still be enabled manually. #700
* Change "admin bar" to "Toolbar". Props @garrett-eclipse. #701
* Show settings enabled by "easy" settings page. #703
### 1.6.9 ###
* Improve the variables and messaging used by advanced-cache.php code. #687
* Add a warning message to the debug log viewer. #688
* Disable raw viewing of the debug log. #691
* Clean up the debug log. #692 #694
* Added wpsc_update_check() in 9659af156344a77ae247dc582d52053d95c79b93.
### 1.6.8 ###
* Added new constants, WPSC_SERVE_DISABLED (disable serving of cached files) and WPSC_SUPERCACHE_ONLY (only serve supercache cache files). #682 and #672
* Hide get_post() warning on some sites. #684
* Check if WPCACHEHOME is set correctly before maybe updating it. #683
* Remove object cache support as it never worked properly. #681
* Add "logged in users" to the "do not cache for users" setting and rename that setting to "Cache Restrictions" #657
### 1.6.7 ###
* wp_cache_setting() can now save boolean values since many of the settings are bools. #676
* Check if $super_cache_enabled is true in a less strict way because it might be '1' rather than true. #677
### 1.6.6 ###
* Fix problems with saving settings. Returns false ONLY when there's an issue with the config file, not when the setting isn't changed. Change other code to cope with that, including updating WPCACHEHOME (#670)
* When saving settings rename the temporary config file correctly, and delete wp-admin/.php if it exists. (#673)
* Fix adding WPCACHEHOME to wp-config.php when advanced-cache.php is not found and wp-config.php is RO. (#674)
### 1.6.5 ###
* Check advanced-cache.php was created by the plugin before modifying/deleting it. (#666)
* When saving settings, save blank lines. Fixes problems with WP_CACHE and WPCACHEHOME in wp-config.php. Related to #652. (#667)
* Update outdated code and use is_multisite() (#600)
* Fix the delete cache button in the Toolbar. (#603)
* Code cleanup in #602
* Use get_post_status instead of post_status (#623)
* Fixes button - Update Direct Pages (#622)
* Removes apache_response_headers and uses only headers_list (#618)
* Function is_site_admin has been deprecated (#611)
* Fixes action urls in wp_cache_manager (#610)
* Remove the link to the HibbsLupusTrust tweet. (#635)
* Don't load wp-cache-config.php if it's already loaded (#605)
* PHPCS fixes and optimization for plugins/domain-mapping.php (#615)
* Introduces PHP_VERSION_ID for faster checking (#604)
* Fixes regex and optimizes ossdl-cdn.php (#596)
* Only update new settings and use a temporary file to avoid corruption. (#652)
* Serve cached files to rejected user agents, don't cache them. (#658)
* Combine multiple headers with the same name (#641)
* Open ‘Delete Cache’ link in same window (#656)
* Promote the Jetpack Site Accelerator on the CDN page. (#636)
### 1.6.4 ###
* Changes between [1.6.3 and 1.6.4](https://github.com/Automattic/wp-super-cache/compare/1.6.3...1.6.4)
* Fixes for WP-CLI (#587) (#592)
* Bumped the minimum WordPress version to 3.1 to use functions introduced then. (#591)
* Fixes to wpsc_post_transition to avoid a fatal error using get_sample_permalink. (#595)
* Fixed the Toolbar "Delete Cache" link. (#589)
* Fixed the headings used in the settings page. (#597)
### 1.6.3 ###
* Changes between [1.6.2 and 1.6.3](https://github.com/Automattic/wp-super-cache/compare/1.6.2...1.6.3)
* Added cookie helper functions (#580)
* Added plugin helper functions (#574)
* Added actions to modify cookie and plugin lists. (#582)
* Really disable garbage collection when timeout = 0 (#571)
* Added warnings about DISABLE_WP_CRON (#575)
* Don't clean expired cache files after preload if garbage collection is disabled (#572)
* On preload, if deleting a post don't delete the sub directories if it's the homepage. (#573)
* Fix generation of semaphores when using WP CLI (#576)
* Fix deleting from the Toolbar (#578)
* Avoid a strpos() warning. (#579)
* Improve deleting of cache in edit/delete/publish actions (#577)
* Fixes to headers code (#496)
### 1.6.2 ###
* Fixed serving expired supercache files (#562)
* Write directly to the config file to avoid permission problems with wp-content. (#563)
* Correctly set the .htaccess rules on the main site of a multisite. (#557)
* Check if set_transient() exists before using it. (#565)
* Removed searchengine.php example plugin as it sets a cookie to track users. Still available [here](https://github.com/Automattic/wp-super-cache/blob/4cda5c0f2218e40e118232b5bf22d227fb3206b7/plugins/searchengine.php). (#567)
* For advanced users only. Change the vary and cache control headers. See https://github.com/Automattic/wp-super-cache/pull/555 (#555)
### 1.6.1 ###
* Fix the name of the WP Crontrol plugin. (#549)
* Handle errors during deactivation/uninstall by email rather than exiting. (#551)
* Add a notice when settings can't be updated. (#552 and #553)
### 1.6.0 ###
* Fix issues in multisite plugin (#501)
* Fixes wp-cli plugin deactivate/activate (#499)
* Cleanup - change quotes. (#495)
* $htaccess_path defines the path to the global .htacess file. (#507)
* Fix 'cannot redeclare gzip_accepted()' (#511)
* Correct the renaming of tmp_wpcache_filename (removed unnecessary slash in path) which caused renaming to fail. (#516)
* Add check for Jetpack mobile theme cookie (#515)
* Optimize wp_cache_phase2 and create wpsc_register_post_hooks (#508)
* WPCACHEHOME has a trailing slash (#513)
* Cleanup cache enable/disable and update_mod_rewrite_rules (#500)
* Post Update now clears category cache (#519)
* Various fixes for saving the debug page form (#542)
* Expert-caching and empty parameters, like ?amp, should not serve cached page (#533)
* Tiny Yslow description fix (#527)
* Add ipad to mobile list (#525)
* Hide opcache_invalidate() warnings since it's disabled some places. (#543)
* Check that HTTP_REFERER exists before checking it. (#544)
* Replace Cron View" with WP Crontrol because it's still updated. (#546)
* adding hook (wp_cache_cleared) for full cache purges (#537)
### 1.5.9 ###
* Fixed fatal error if the debug log was deleted while debugging was enabled and a visitor came to the site.
* Fixed the dynamic caching test plugin because of PHP7 changes. Dynamic cache mode must be enabled now.
* Lots of WordPress coding style formatting fixes to the code.
* All changes: https://github.com/Automattic/wp-super-cache/compare/1.5.8...1.5.9
### 1.5.8 ###
* PHP 7 fixes. (#429)
* Fix debug comments checkbox. (#433)
* Only register uninstall function in admin pages to save queries. (#430)
* Check that wp-cache-phase1.php is loaded before saving settings page. (#428)
* If a url has a "?" in it then don't delete the associated cache. It'll delete the whole cache after stripping out ?... part. (#427 & #420)
* Allow static functions in classes to be used in cacheactions. (#425)
* Don't make AJAX requests anonymous. (#423)
* Fixed link to chmod explanation. (#421)
* Add more escaping to the CDN settings page. (#416)
* Use SERVER_PROTOCOL to determine http protocol. (#412 & #413)
* If preload stalls only send one email per day, but do display an admin notice. (#432)
* Fixed more PHP warnings in #438 and #437
* Hide mod_rewrite warnings for Nginx users. #434
### 1.5.7.1 ###
* If the HTTP HOST is empty then don't use it in strpos to avoid a PHP warning. (#408)
* Don't preload posts with permalinks that contain rejected strings. (#407)
* Generate a list of archive feeds that can be deleted when the site is updated. Also fixes corrupted config file issue and fatal error with older versions of WordPress. (#403)
### 1.5.7 ###
* Fix fatal error in plugins/searchengine.php (#398)
### 1.5.6 ###
* REST API: Added /plugins endpoint to handle the plugins settings page. (#382)
* Minor changes to indentaion and spaces to tabs conversion (#371) (#395)
* Don't set $wp_super_cache_comments here as it's not saved. (#379)
* realpath() only works on directories. The cache_file wasn't set correctly. (#377)
* Fix problem deleting cache from Toolbar because of realpath() (#381)
* Use trigger_error() instead of echoing to the screen if a config file isn't writeable. (#394)
* Added the "wpsc_enable_wp_config_edit" filter to disable editing the wp-config.php (#392)
* Fix some PHP notices when comments are edited/published/maintained. (#386)
* Minor changes to description on plugins page. (#393)
### 1.5.5 ###
* Catch fatal errors so they're not cached, improve code that catches unknown page types. (#367)
* Fix caching on older WP installs, and if the plugin is inactive on a blog, but still caching, give feeds a short TTL to ensure they're fresh. (#366)
* When preloading don't delete sub-directories, or child pages, when caching pages. (#363)
* Avoid PHP warnings from the REST API for settings that are not yet defined. (#361)
* Added missing settings to the config file. (#360)
### 1.5.4 ###
* Fix messages related to creating advanced-cache.php (#355, #354)
* Deleting the plugin doesn't need to delete the cache directory as it's already done on deactivation. (#323)
* Disable Jetpack mobile detection if Jetpack Beta is detected. (#298)
* Add more checks on directories to make sure they exist before deleting them. (#324)
* Add siteurl setting to CDN page for users who have WordPress in it's own directory. (#332)
* Don't enable and then not save debug comments when toggling logging. (#334)
* Show plugin activity html comments to users who disable caching for logged in users. (#335)
* Better notifications on Preload page, and redo sql to fetch posts. Added "wpsc_preload_post_types_args" filter on post visibility, and wpsc_preload_post_types filter on post types used. (#336)
* Use a cached feed if it is newer than the last time a post was updated. (#337)
* Better define a sitemap (#340) but when the content type is unknown add more checks to find out what it is. (#346)
* Save cache location correctly on the advanced settings page. (#345)
* Make sure the debug log exists before toggling it on/off to ensure the http auth code is added to it.
* Return the correct cache type to the REST API. Ignore supercache enabled status. (#352)
* Fix cache contents in REST API showing double count of supercache files. (#353)
* Move the nonce in the CDN page back into a function. (#346)
* Use realpath to compare directories when loading the sample config file to account for symlinked directories. (#342)
* Other minor changes to html or typos
(Numbers are [pull requests](https://github.com/Automattic/wp-super-cache/pulls) on Github.)
### 1.5.3 ###
* Fix a critical bug that caused unlink to be run on null while deleting the plugin.
### 1.5.2 ###
* Add a trailing slash to home path. Fixes problems with finding the .htaccess file.
* Delete WPCACHEHOME and WP_CACHE from wp-config.php when plugin deactivated.
* Check that WPCACHEHOME is the right path on each load of the settings page.
* Load the REST API code without using WPCACHEHOME.
* Fixed mobile browser caching when using WP-Cache caching.
* Fixed directory checks on Windows machines.
* Reverted CDN changes in 1.5.0 as they caused problems in older "WordPress in a separate directory" installs.
* Added note to CDN page when site url != home url. Site owners can use a filter to adjust the URL used.
* Stop preload quicker when requested while preloading taxonomies.
* Added more information for when updating the .htaccess file fails.
* "Served by" header is now optional. Enable it by setting $wpsc_served_header to true in the config file.
### 1.5.1 ###
* Don't use anonymous functions in REST API
* Check that REST API Controller is available before loading the REST API.
* Don't use multibyte string functions because some sites don't have it enabled.
### 1.5.0 ###
* REST API settings endpoints.
* Simplified settings page.
* WP-Cache files reorganised.
* Caching of more http headers.
* Lots of bug fixes.
### 1.4.9 ###
* Fixed bug when not running sem_remove after sem_release. See https://github.com/Automattic/wp-super-cache/issues/85
* Fixed a PHP error impacting PHP 7.1.
* Fixed a bug where we cached PUT and DELETE requests. We're treating them like POST requests now.
* Delete supercache cache files, even when supercache is disabled, because mod_rewrite rules might still be active.
* Updated the settings page, moving things around. [#173](https://github.com/Automattic/wp-super-cache/pull/173)
* Make file locking less attractive on the settings page and fixed the WPSC_DISABLE_LOCKING constant so it really disables file locking even if the user has enabled it already.
* Added a WPSC_REMOVE_SEMAPHORE constant that must be defined if sem_remove() is to be used as it may cause problems. [#174](https://github.com/Automattic/wp-super-cache/pull/174)
* Added a "wpsc_delete_related_pages_on_edit" filter that on returning 0 will disable deletion of pages outside of page being edited. [#175](https://github.com/Automattic/wp-super-cache/pull/175)
* Fixed plugin deleting all cached pages when a site had a static homepage. [#175](https://github.com/Automattic/wp-super-cache/pull/175)
* Make sure $cache_path has a trailing slash [#177](https://github.com/Automattic/wp-super-cache/pull/77)
* Remove flush() [#127](https://github.com/Automattic/wp-super-cache/pull/127) but also check if headers are empty and flush and get headers again. [#179](https://github.com/Automattic/wp-super-cache/pull/179)
* Add fix for customizer [#161](https://github.com/Automattic/wp-super-cache/pull/161) and don't cache PUT AND DELETE requests [#178](https://github.com/Automattic/wp-super-cache/pull/178)
* Check for superglobals before using them. [#131](https://github.com/Automattic/wp-super-cache/pull/131)
### 1.4.8 ###
* Removed malware URL in a code comment. (harmless to operation of plugin but gets flagged by A/V software)
* Updated translation file.
### 1.4.7 ###
* Update the settings page for WordPress 4.4. layout changes.
### 1.4.6 ###
* Generate the file cache/.htaccess even when one exists so gzip rules are created and gzipped pages are served correctly. Props Tigertech. https://wordpress.org/support/topic/all-website-pages-downloading-gz-file-after-latest-update?replies=36#post-7494087
### 1.4.5 ###
* Enhancement: Only preload public post types. Props webaware.
* Added an uninstall function that deletes the config file. Deactivate function doesn't delete it any more.
* Possible to deactivate the plugin without visiting the settings page now.
* Fixed the cache rebuild system. Rebuild files now survive longer than the request that generate them.
* Minor optimisations: prune_super_cache() exits immediately if the file doesn't exist. The output of wp_cache_get_cookies_values() is now cached.
* Added PHP pid to the debug log to aid debugging.
* Various small bug fixes.
* Fixed reset of expiry time and GC settings when updating advanced settings.
* Removed CacheMeta class to avoid APC errors. It's not used any more.
* Fixed reset of advanced settings when using "easy" settings page.
* Fixed XSS in settings page.
* Hide cache files when servers display directory indexes.
* Prevent PHP object injection through use of serialize().
### 1.4.4 ###
* Fixed fatal error in output handler if GET parameters present in query. Props webaware.
* Fixed debug log. It wasn't logging the right message.
### 1.4.3 ###
* Security release fixing an XSS bug in the settings page. Props Marc Montpas from Sucuri.
* Added wp_debug_log(). Props Jen Heilemann.
* Minor fixes.
### 1.4.2 ###
* Fixed "acceptable file list".
* Fixed "Don't cache GET requests" feature.
* Maybe fixed "304 not modified" problem for some users.
* Fixed some PHP warnings.
### 1.4.1 ###
* Fixed XSS in settings page. Props Simon Waters, Surevine Limited.
* Fix to object cache so entries may now be deleted when posts updated. (object cache still experimental)
* Documentation updates and cleanup of settings page.
### 1.4 ###
* Replace legacy mfunc/mnclude/dynamic-cached-content functionality with a "wpsc_cachedata" cacheaction filter.
* Added dynamic-cache-test.php plugin example wpsc_cachedata filter plugin.
* Delete post, tag and category cache when a post changes from draft to publish or vice versa. Props @Biranit.
* Update advanced-cache.php and wp-config.php if wp-cache-phase1.php doesn't load, usually happening after migrating to a new hosting service.
* Misc bugfixes.
### 1.3.2 ###
* Any mfunc/mclude/dynamic-cached-content tags in comments are now removed.
* Dynamic cached content feature disabled by default and must be enabled on the Advanced Settings page.
* Support for the mobile theme in Jetpack via helper plugin on script's Plugins tab.
### 1.3.1 ###
* Minor updates to documentation
* Fixed XSS in settings page.
### 1.3 ###
* mfunc tags could be executed in comments. Fixed.
* More support for sites that use the LOGGED_IN_COOKIE constant and custom cookies.
### 1.2 ###
* Garbage collection of old cache files is significantly improved. I added a scheduled job that keeps an eye on things and restarts the job if necessary. Also, if you enable caching from the Easy page garbage collection will be enabled too.
* Editors can delete single cached files from the Toolbar now.
* Fixed the cached page counter on the settings page.
* Some sites that updated to 1.0 experienced too much garbage collection. There are still stragglers out there who haven't upgraded but that's fixed now!
* Supercached mobile files are now used as there was a tiny little typo that needed fixing.
* If your site is in a directory and you saw problems updating a page then that should be fixed now.
* The deactivate hook has been changed so your configuration isn.t hosed when you upgrade. Unfortunately this will only happen after you do this upgrade.
* Some sites use custom cookies with the LOGGED_IN_COOKIE constant. Added support for that.
* Added support for WPTouch Pro, but it appears to be flaky still. Anyone have time to work on that? I don.t.
* Some sites had problems with scheduled posts. For some reason the plugin thought the post was in draft mode and then because it only checked the same post once, when the post magically became published the cache wasn.t cleared. That.s fixed, thanks to the debug logging of several patient users.
* And more bug fixes and translation updates.
### 1.1 ###
* Use $_SERVER[ 'SERVER_NAME' ] to create cache directories.
* Only create blogs cached directories if valid requests and blogs exist.
* Only clear current blog's cache files if navigation menu is modified
* Added clean_post_cache action to clear cache on post actions
* Removed garbage collection details on Contents tab
* Added wp_cache_check_mobile cacheaction filter to shortcircuit mobile device check.
* Don't delete cache files for draft posts
* Added action on wp_trash_post to clear the cache when trashed posts are deleted
* Show a warning when 304 browser caching is disabled (because mod_rewrite caching is on)
* New check for safe mode if using less that PHP 5.3.0
* Added wp_supercache_remove_cookies filter to disable anonymous browsing mode.
* Fixed garbage collection schedule dropdown
* Fixed preload problem clearing site's cache on "page on front" sites.
* Fix for PHP variable not defined warnings
* Fixed problem refreshing cache when comments made as siteurl() sometimes didn't work
* Preloading of taxonomies is now optional
* Domain mapping fixes.
* Better support for https sites. Remove https:// to get cache paths.
* Added AddDefaultCharset .htaccess rule back in and added an option to remove it if required.
* Added multisite plugin that adds a "Cached" column to Network->Sites to disable caching on a per site basis.
* Added WPTouch plugin to modify browser and prefix list in mobile detection code. Added support for that plugin's exclude list.
* Fixed cache tester
* Filter the tags that are used to detect end-of-page using the wp_cache_eof_tags filter.
* Removed debug level from logging as it wasn't helpful.
* Removed mention of wp-minify.
### 1.0 ###
* Removed AddDefaultCharset .htaccess rule
* Fixed problem with blogs in a folder and don't have a trailing slash
* New scheduling of garbage collection
* Added a "Delete cache" link to Toolbar to delete cache of current page.
* Updated documentation
* Sorry Digg, Stephen Fry power now!
* Updated translations
* Preload taxonomies and all post types except revisionsand nav menu items
* Fixed previews by logged in users.
* Added option to make logged in users anonymous
* Use WP 3.0 variables to detect multisite installs
* Hash filenames so files are served from the same CDNs
### 0.9.9.9 ###
* Fixed typo, is_front_page.
* Serve repeated static files from the same CDN hostname.
* Updated translations.
* Make supercache dir lowercase to avoid problems with unicode URLs.
* Add option to skip https loaded static content.
* Remove 5 second check on age of existing cache files. Should help with posts that get lots of comments and traffic.
* Lots of bugs fixed.
### 0.9.9.8 ###
* CDN updates: can be switched off, multiple CNAMEs.
* Uninstall process improved. It removes generated files and fixes edited files.
* Cached dynamic pages can now be stored in Supercache files and compressed.
* 1and1 Webhosting fix (/kunden/)
* Remove log by email functionality as it caused problems for users who were inundated by email
* Many more minor fixes and changes.
### 0.9.9.6 ###
* Fixed problem serving cached files with PHP
* Added support for 304 "file not modified" header to help browser caching. (PHP caching only)
* Added French & German translations, updated Italian translation and fixed translation strings.
* Sleep 4 seconds between preload urls to reduce load on the server
* Updated docs and FAQs.
### 0.9.9.5 ###
* Disable compression on on easy setup page. Still causes problems on some hosts.
* Remove footerlink on easy setup page.
* Don't delete mod_rewrite rules when caching is disabled.
* Don't stop users using settings page when in safe mode.
### 0.9.9.4 ###
* Settings page split into tabbed pages.
* Added new "Easy" settings page for new users.
* New PHP caching mode to serve supercached files.
* Mobile support fixes.
* Added Domain mapping support plugin.
* Added "awaiting moderation" plugin that removes that text from posts.
* Terminology change. Changed "half on" to "legacy caching".
* Fixed cache tester on some installs of WordPress.
* Updated documentation
* Added $wp_super_cache_lock_down config variable to hide lockdown and directly cached pages admin items.
* Preloaded checks if it has stalled and reschedules the job to continue.
* Serve the gzipped page when first cached if the client supports compression.
* Lots more bug fixes..
### 0.9.9.3 ###
* Fixed division by zero error in half on mode.
* Always show "delete cache" button.
* Fixed "Update mod_rewrite rules" button.
* Minor text changes to admin page.
### 0.9.9.2 ###
* Forgot to change version number in wp-cache.php
### 0.9.9.1 ###
* Added preloading of static cache.
* Better mobile plugin support
* .htaccess rules can be updated now. Added wpsc_update_htaccess().
* Fixed "page on front" cache clearing bug.
* Check for wordpress_logged_in cookie so test cookie isn't detected.
* Added clear_post_supercache() to clear supercache for a single post.
* Put quotes around rewrite rules in case paths have spaces.
### 0.9.9 ###
* Added experimental object cache support.
* Added Chinese(Traditional) translation by Pseric.
* Added FAQ on WP-Cache vs Supercache files.
* Use Supercache file if WP-Cache file not found. Useful if mod_rewrite rules are broken or not working.
* Get mobile browser list from WP Mobile Edition if found. Warn user if .htaccess out of date.
* Make sure writer lock is unlocked after writing cache files.
* Added link to developer docs in readme.
* Added Ukranian translation by Vitaly Mylo.
* Added Upgrade Notice section to readme.
* Warn if zlib compression in PHP is enabled.
* Added compression troubleshooting answer. Props Vladimir (http://blog.sjinks.pro/)
* Added Japanese translation by Tai (http://tekapo.com/)
* Updated Italian translation.
* Link to WP Mobile Edition from admin page for mobile support.
### 0.9.8 ###
* Added Spanish translation by Omi.
* Added Italian translation by Gianni Diurno.
* Addded advanced debug code to check front page for category problem. Enable by setting $wp_super_cache_advanced_debug to 1 in the config file.
* Fixed wordpress vs wordpress_logged_in cookie mismatch in cookie checking function.
* Correctly check if WP_CACHE is set or not. PHP is weird.
* Added wp_cache_clear_cache() to clear out cache directory.
* Only show logged in message when debugging enabled.
* Added troubleshooting point 20. PHP vs Apache user.
* Fixed problem deleting cache file.
* Don't delete cache files when moderated comments are deleted.
### 0.9.7 ###
* Fixed problem with blogs in folders.
* Added cache file listing and delete links to admin page.
* Added "Newest Cached Pages" listing in sidebox.
* Made admin page translatable.
* Added "How do I make certain parts of the page stay dynamic?" to FAQ.
* Advanced: added "late init" feature so that plugin activates on "init". Set $wp_super_cache_late_init to true in config file to use.
* Disable supercaching when GET parameters present instead of disabling all caching. Disable on POST (as normal) and preview.
* Fixed problem with cron job and mutex filename.
* Warn users they must enable mobile device support if rewrite rules detected. Better detection of when to warn that .htaccess rules must be updated (no need when rewrite rules not present)
* Advanced: Added "wpsupercache_404" filter. Return true to cache 404 error pages.
* Use the wordpress_test_cookie in the cache key.
* Show correct number of cache files when compression off.
* Fixed problem with PHP safe_mode detection.
* Various bugfixes and documentation updates. See Changelog.txt
### 0.9.6.1 ###
* Move "not logged in" message init below check for POST.
* Add is_admin() check so plugin definitely can't cache the backend.
* Add "do not cache" page type to admin page.
### 0.9.6 ###
* Add uninstall.php uninstall script.
* Updated cache/.htaccess rules (option to upgrade that)
* Added FAQ about category and static homepage problem.
* Add wp_cache_user_agent_is_rejected() back to wp-cache-phase2.php
* Show message for logged in users when caching disable for them.
* Check filemtime on correct supercache file
### 0.9.5 ###
* Show next and last GC times in minutes, not local time.
* Don't serve wp_cache cache files to rejected user agents. Supercache files are still served to them.
* If enabled, mobile support now serves php cached files to mobile clients and static cached files to everyone else.
* Added checks for "WPSC_DISABLE_COMPRESSION" and "WPSC_DISABLE_LOCKING" constants to disable compression and file locking. For hosting companies primarily.
* Added check for DONOTCACHEPAGE constant to avoid caching a page.
* Use PHP_DOCUMENT_ROOT when creating .htaccess if necessary.
### 0.9.4.3 ###
1. Added "Don't cache for logged in users" option.
2. Display file size stats on admin page.
3. Clear the cache when profile page is updated.
4. Don't cache post previews.
5. Added backslashes to rejected URI regex list.
6. Fixed problems with posts and comments not refreshing.
## Upgrade Notice ##
Misc fixes
home/studionolh/www/wp-includes/ID3/readme.txt 0000644 00000063205 15233670412 0015330 0 ustar 00 /////////////////////////////////////////////////////////////////
/// getID3() by James Heinrich <info@getid3.org> //
// available at http://getid3.sourceforge.net //
// or https://www.getid3.org //
// also https://github.com/JamesHeinrich/getID3 //
/////////////////////////////////////////////////////////////////
*****************************************************************
*****************************************************************
getID3() is released under multiple licenses. You may choose
from the following licenses, and use getID3 according to the
terms of the license most suitable to your project.
GNU GPL: https://gnu.org/licenses/gpl.html (v3)
https://gnu.org/licenses/old-licenses/gpl-2.0.html (v2)
https://gnu.org/licenses/old-licenses/gpl-1.0.html (v1)
GNU LGPL: https://gnu.org/licenses/lgpl.html (v3)
Mozilla MPL: https://www.mozilla.org/MPL/2.0/ (v2)
getID3 Commercial License: https://www.getid3.org/#gCL (payment required)
*****************************************************************
*****************************************************************
Copies of each of the above licenses are included in the 'licenses'
directory of the getID3 distribution.
+----------------------------------------------+
| If you want to donate, there is a link on |
| https://www.getid3.org for PayPal donations. |
+----------------------------------------------+
Quick Start
===========================================================================
Q: How can I check that getID3() works on my server/files?
A: Unzip getID3() to a directory, then access /demos/demo.browse.php
Support
===========================================================================
Q: I have a question, or I found a bug. What do I do?
A: The preferred method of support requests and/or bug reports is the
forum at http://support.getid3.org/
Sourceforge Notification
===========================================================================
It's highly recommended that you sign up for notification from
Sourceforge for when new versions are released. Please visit:
http://sourceforge.net/project/showfiles.php?group_id=55859
and click the little "monitor package" icon/link. If you're
previously signed up for the mailing list, be aware that it has
been discontinued, only the automated Sourceforge notification
will be used from now on.
What does getID3() do?
===========================================================================
Reads & parses (to varying degrees):
¤ tags:
* APE (v1 and v2)
* ID3v1 (& ID3v1.1)
* ID3v2 (v2.4, v2.3, v2.2)
* Lyrics3 (v1 & v2)
¤ audio-lossy:
* MP3/MP2/MP1
* MPC / Musepack
* Ogg (Vorbis, OggFLAC, Speex, Opus)
* AAC / MP4
* AC3
* DTS
* RealAudio
* Speex
* DSS
* VQF
¤ audio-lossless:
* AIFF
* AU
* Bonk
* CD-audio (*.cda)
* FLAC
* LA (Lossless Audio)
* LiteWave
* LPAC
* MIDI
* Monkey's Audio
* OptimFROG
* RKAU
* Shorten
* TTA
* VOC
* WAV (RIFF)
* WavPack
¤ audio-video:
* ASF: ASF, Windows Media Audio (WMA), Windows Media Video (WMV)
* AVI (RIFF)
* Flash
* Matroska (MKV)
* MPEG-1 / MPEG-2
* NSV (Nullsoft Streaming Video)
* Quicktime (including MP4)
* RealVideo
¤ still image:
* BMP
* GIF
* JPEG
* PNG
* TIFF
* SWF (Flash)
* PhotoCD
¤ data:
* ISO-9660 CD-ROM image (directory structure)
* SZIP (limited support)
* ZIP (directory structure)
* TAR
* CUE
Writes:
* ID3v1 (& ID3v1.1)
* ID3v2 (v2.3 & v2.4)
* VorbisComment on OggVorbis
* VorbisComment on FLAC (not OggFLAC)
* APE v2
* Lyrics3 (delete only)
Requirements
===========================================================================
* PHP 4.2.0 up to 5.2.x for getID3() 1.7.x (and earlier)
* PHP 5.0.5 (or higher) for getID3() 1.8.x (and up)
* PHP 5.3.0 (or higher) for getID3() 1.9.17 (and up)
* PHP 5.3.0 (or higher) for getID3() 2.0.x (and up)
* at least 4MB memory for PHP. 8MB or more is highly recommended.
12MB is required with all modules loaded.
Usage
===========================================================================
See /demos/demo.basic.php for a very basic use of getID3() with no
fancy output, just scanning one file.
See structure.txt for the returned data structure.
*> For an example of a complete directory-browsing, <*
*> file-scanning implementation of getID3(), please run <*
*> /demos/demo.browse.php <*
See /demos/demo.mysql.php for a sample recursive scanning code that
scans every file in a given directory, and all sub-directories, stores
the results in a database and allows various analysis / maintenance
operations
To analyze remote files over HTTP or FTP you need to copy the file
locally first before running getID3(). Your code would look something
like this:
// Copy remote file locally to scan with getID3()
$remotefilename = 'http://www.example.com/filename.mp3';
if ($fp_remote = fopen($remotefilename, 'rb')) {
$localtempfilename = tempnam('/tmp', 'getID3');
if ($fp_local = fopen($localtempfilename, 'wb')) {
while ($buffer = fread($fp_remote, 32768)) {
fwrite($fp_local, $buffer);
}
fclose($fp_local);
$remote_headers = array_change_key_case(get_headers($remotefilename, 1), CASE_LOWER);
$remote_filesize = (isset($remote_headers['content-length']) ? (is_array($remote_headers['content-length']) ? $remote_headers['content-length'][count($remote_headers['content-length']) - 1] : $remote_headers['content-length']) : null);
// Initialize getID3 engine
$getID3 = new getID3;
$ThisFileInfo = $getID3->analyze($localtempfilename, $remote_filesize, basename($remotefilename));
// Delete temporary file
unlink($localtempfilename);
}
fclose($fp_remote);
}
Note: since v1.9.9-20150212 it is possible a second and third parameter
to $getID3->analyze(), for original filesize and original filename
respectively. This permits you to download only a portion of a large remote
file but get accurate playtime estimates, assuming the format only requires
the beginning of the file for correct format analysis.
See /demos/demo.write.php for how to write tags.
What does the returned data structure look like?
===========================================================================
See structure.txt
It is recommended that you look at the output of
/demos/demo.browse.php scanning the file(s) you're interested in to
confirm what data is actually returned for any particular filetype in
general, and your files in particular, as the actual data returned
may vary considerably depending on what information is available in
the file itself.
Notes
===========================================================================
getID3() 1.x:
If the format parser encounters a critical problem, it will return
something in $fileinfo['error'], describing the encountered error. If
a less critical error or notice is generated it will appear in
$fileinfo['warning']. Both keys may contain more than one warning or
error. If something is returned in ['error'] then the file was not
correctly parsed and returned data may or may not be correct and/or
complete. If something is returned in ['warning'] (and not ['error'])
then the data that is returned is OK - usually getID3() is reporting
errors in the file that have been worked around due to known bugs in
other programs. Some warnings may indicate that the data that is
returned is OK but that some data could not be extracted due to
errors in the file.
getID3() 2.x:
See above except errors are thrown (so you will only get one error).
Disclaimer
===========================================================================
getID3() has been tested on many systems, on many types of files,
under many operating systems, and is generally believe to be stable
and safe. That being said, there is still the chance there is an
undiscovered and/or unfixed bug that may potentially corrupt your
file, especially within the writing functions. By using getID3() you
agree that it's not my fault if any of your files are corrupted.
In fact, I'm not liable for anything :)
License
===========================================================================
GNU General Public License - see license.txt
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to:
Free Software Foundation, Inc.
59 Temple Place - Suite 330
Boston, MA 02111-1307, USA.
FAQ:
Q: Can I use getID3() in my program? Do I need a commercial license?
A: You're generally free to use getID3 however you see fit. The only
case in which you would require a commercial license is if you're
selling your closed-source program that integrates getID3. If you
sell your program including a copy of getID3, that's fine as long
as you include a copy of the sourcecode when you sell it. Or you
can distribute your code without getID3 and say "download it from
getid3.sourceforge.net"
Why is it called "getID3()" if it does so much more than just that?
===========================================================================
v0.1 did in fact just do that. I don't have a copy of code that old, but I
could essentially write it today with a one-line function:
function getID3($filename) { return unpack('a3TAG/a30title/a30artist/a30album/a4year/a28comment/c1track/c1genreid', substr(file_get_contents($filename), -128)); }
Future Plans
===========================================================================
https://www.getid3.org/phpBB3/viewforum.php?f=7
* Better support for MP4 container format
* Scan for appended ID3v2 tag at end of file per ID3v2.4 specs (Section 5.0)
* Support for JPEG-2000 (http://www.morgan-multimedia.com/jpeg2000_overview.htm)
* Support for MOD (mod/stm/s3m/it/xm/mtm/ult/669)
* Support for ACE (thanks Vince)
* Support for Ogg other than Vorbis, Speex and OggFlac (ie. Ogg+Xvid)
* Ability to create Xing/LAME VBR header for VBR MP3s that are missing VBR header
* Ability to "clean" ID3v2 padding (replace invalid padding with valid padding)
* Warn if MP3s change version mid-stream (in full-scan mode)
* check for corrupt/broken mid-file MP3 streams in histogram scan
* Support for lossless-compression formats
(http://www.firstpr.com.au/audiocomp/lossless/#Links)
(http://compression.ca/act-sound.html)
(http://web.inter.nl.net/users/hvdh/lossless/lossless.htm)
* Support for RIFF-INFO chunks
* http://lotto.st-andrews.ac.uk/~njh/tag_interchange.html
(thanks Nick Humfrey <njhØsurgeradio*co*uk>)
* http://abcavi.narod.ru/sof/abcavi/infotags.htm
(thanks Kibi)
* Better support for Bink video
* http://www.hr/josip/DSP/AudioFile2.html
* http://www.pcisys.net/~melanson/codecs/
* Detect mp3PRO
* Support for PSD
* Support for JPC
* Support for JP2
* Support for JPX
* Support for JB2
* Support for IFF
* Support for ICO
* Support for ANI
* Support for EXE (comments, author, etc) (thanks p*quaedackersØplanet*nl)
* Support for DVD-IFO (region, subtitles, aspect ratio, etc)
(thanks p*quaedackersØplanet*nl)
* More complete support for SWF - parsing encapsulated MP3 and/or JPEG content
(thanks n8n8Øyahoo*com)
* Support for a2b
* Optional scan-through-frames for AVI verification
(thanks rockcohenØmassive-interactive*nl)
* Support for TTF (thanks infoØbutterflyx*com)
* Support for DSS (https://www.getid3.org/phpBB3/viewtopic.php?t=171)
* Support for SMAF (http://smaf-yamaha.com/what/demo.html)
https://www.getid3.org/phpBB3/viewtopic.php?t=182
* Support for AMR (https://www.getid3.org/phpBB3/viewtopic.php?t=195)
* Support for 3gpp (https://www.getid3.org/phpBB3/viewtopic.php?t=195)
* Support for ID4 (http://www.wackysoft.cjb.net grizlyY2KØhotmail*com)
* Parse XML data returned in Ogg comments
* Parse XML data from Quicktime SMIL metafiles (klausrathØmac*com)
* ID3v2 genre string creator function
* More complete parsing of JPG
* Support for all old-style ASF packets
* ASF/WMA/WMV tag writing
* Parse declared T??? ID3v2 text information frames, where appropriate
(thanks Christian Fritz for the idea)
* Recognize encoder:
http://www.guerillasoft.com/EncSpot2/index.html
http://ff123.net/identify.html
http://www.hydrogenaudio.org/?act=ST&f=16&t=9414
http://www.hydrogenaudio.org/?showtopic=11785
* Support for other OS/2 bitmap structures: Bitmap Array('BA'),
Color Icon('CI'), Color Pointer('CP'), Icon('IC'), Pointer ('PT')
http://netghost.narod.ru/gff/graphics/summary/os2bmp.htm
* Support for WavPack RAW mode
* ASF/WMA/WMV data packet parsing
* ID3v2FrameFlagsLookupTagAlter()
* ID3v2FrameFlagsLookupFileAlter()
* obey ID3v2 tag alter/preserve/discard rules
* http://www.geocities.com/SiliconValley/Sector/9654/Softdoc/Illyrium/Aolyr.htm
* proper checking for LINK/LNK frame validity in ID3v2 writing
* proper checking for ASPI-TLEN frame validity in ID3v2 writing
* proper checking for COMR frame validity in ID3v2 writing
* http://www.geocities.co.jp/SiliconValley-Oakland/3664/index.html
* decode GEOB ID3v2 structure as encoded by RealJukebox,
decode NCON ID3v2 structure as encoded by MusicMatch
(probably won't happen - the formats are proprietary)
Known Bugs/Issues in getID3() that may be fixed eventually
===========================================================================
https://www.getid3.org/phpBB3/viewtopic.php?t=25
* Cannot determine bitrate for MPEG video with VBR video data
(need documentation)
* Interlace/progressive cannot be determined for MPEG video
(need documentation)
* MIDI playtime is sometimes inaccurate
* AAC-RAW mode files cannot be identified
* WavPack-RAW mode files cannot be identified
* mp4 files report lots of "Unknown QuickTime atom type"
(need documentation)
* Encrypted ASF/WMA/WMV files warn about "unhandled GUID
ASF_Content_Encryption_Object"
* Bitrate split between audio and video cannot be calculated for
NSV, only the total bitrate. (need documentation)
* All Ogg formats (Vorbis, OggFLAC, Speex) are affected by the
problem of large VorbisComments spanning multiple Ogg pages, but
but only OggVorbis files can be processed with vorbiscomment.
* The version of "head" supplied with Mac OS 10.2.8 (maybe other
versions too) does only understands a single option (-n) and
therefore fails. getID3 ignores this and returns wrong md5_data.
Known Bugs/Issues in getID3() that cannot be fixed
--------------------------------------------------
https://www.getid3.org/phpBB3/viewtopic.php?t=25
* 32-bit PHP installations only:
Files larger than 2GB cannot always be parsed fully by getID3()
due to limitations in the 32-bit PHP filesystem functions.
NOTE: Since v1.7.8b3 there is partial support for larger-than-
2GB files, most of which will parse OK, as long as no critical
data is located beyond the 2GB offset.
Known will-work:
* all file formats on 64-bit PHP
* ZIP (format doesn't support files >2GB)
* FLAC (current encoders don't support files >2GB)
Known will-not-work:
* ID3v1 tags (always located at end-of-file)
* Lyrics3 tags (always located at end-of-file)
* APE tags (always located at end-of-file)
Maybe-will-work:
* Quicktime (will work if needed metadata is before 2GB offset,
that is if the file has been hinted/optimized for streaming)
* RIFF.WAV (should work fine, but gives warnings about not being
able to parse all chunks)
* RIFF.AVI (playtime will probably be wrong, is only based on
"movi" chunk that fits in the first 2GB, should issue error
to show that playtime is incorrect. Other data should be mostly
correct, assuming that data is constant throughout the file)
* PHP <= v5 on Windows cannot read UTF-8 filenames
Known Bugs/Issues in other programs
-----------------------------------
https://www.getid3.org/phpBB3/viewtopic.php?t=25
* MusicBrainz Picard (at least up to v1.3.2) writes multiple
ID3v2.3 genres in non-standard forward-slash separated text
rather than parenthesis-numeric+refinement style per the ID3v2.3
specs. Tags written in ID3v2.4 mode are written correctly.
(detected and worked around by getID3())
* PZ TagEditor v4.53.408 has been known to insert ID3v2.3 frames
into an existing ID3v2.2 tag which, of course, breaks things
* Windows Media Player (up to v11) and iTunes (up to v10+) do
not correctly handle ID3v2.3 tags with UTF-16BE+BOM
encoding (they assume the data is UTF-16LE+BOM and either
crash (WMP) or output Asian character set (iTunes)
* Winamp (up to v2.80 at least) does not support ID3v2.4 tags,
only ID3v2.3
see: http://forums.winamp.com/showthread.php?postid=387524
* Some versions of Helium2 (www.helium2.com) do not write
ID3v2.4-compliant Frame Sizes, even though the tag is marked
as ID3v2.4) (detected by getID3())
* MP3ext V3.3.17 places a non-compliant padding string at the end
of the ID3v2 header. This is supposedly fixed in v3.4b21 but
only if you manually add a registry key. This fix is not yet
confirmed. (detected by getID3())
* CDex v1.40 (fixed by v1.50b7) writes non-compliant Ogg comment
strings, supposed to be in the format "NAME=value" but actually
written just "value" (detected by getID3())
* Oggenc 0.9-rc3 flags the encoded file as ABR whether it's
actually ABR or VBR.
* iTunes (versions "v7.0.0.70" is known-guilty, probably
other versions are too) writes ID3v2.3 comment tags using an
ID3v2.2 frame name (3-bytes) null-padded to 4 bytes which is
not valid for ID3v2.3+
(detected by getID3() since 1.9.12-201603221746)
* iTunes (versions "X v2.0.3", "v3.0.1" are known-guilty, probably
other versions are too) writes ID3v2.3 comment tags using a
frame name 'COM ' which is not valid for ID3v2.3+ (it's an
ID3v2.2-style frame name) (detected by getID3())
* MP2enc does not encode mono CBR MP2 files properly (half speed
sound and double playtime)
* MP2enc does not encode mono VBR MP2 files properly (actually
encoded as stereo)
* tooLAME does not encode mono VBR MP2 files properly (actually
encoded as stereo)
* AACenc encodes files in VBR mode (actually ABR) even if CBR is
specified
* AAC/ADIF - bitrate_mode = cbr for vbr files
* LAME 3.90-3.92 prepends one frame of null data (space for the
LAME/VBR header, but it never gets written) when encoding in CBR
mode with the DLL
* Ahead Nero encodes TwinVQF with a DSIZ value (which is supposed
to be the filesize in bytes) of "0" for TwinVQF v1.0 and "1" for
TwinVQF v2.0 (detected by getID3())
* Ahead Nero encodes TwinVQF files 1 second shorter than they
should be
* AAC-ADTS files are always actually encoded VBR, even if CBR mode
is specified (the CBR-mode switches on the encoder enable ABR
mode, not CBR as such, but it's not possible to tell the
difference between such ABR files and true VBR)
* STREAMINFO.audio_signature in OggFLAC is always null. "The reason
it's like that is because there is no seeking support in
libOggFLAC yet, so it has no way to go back and write the
computed sum after encoding. Seeking support in Ogg FLAC is the
#1 item for the next release." - Josh Coalson (FLAC developer)
NOTE: getID3() will calculate md5_data in a method similar to
other file formats, but that value cannot be compared to the
md5_data value from FLAC data in a FLAC file format.
* STREAMINFO.audio_signature is not calculated in FLAC v0.3.0 &
v0.4.0 - getID3() will calculate md5_data in a method similar to
other file formats, but that value cannot be compared to the
md5_data value from FLAC v0.5.0+
* RioPort (various versions including 2.0 and 3.11) tags ID3v2 with
a WCOM frame that has no data portion
* Earlier versions of Coolplayer adds illegal ID3 tags to Ogg Vorbis
files, thus making them corrupt.
* Meracl ID3 Tag Writer v1.3.4 (and older) incorrectly truncates the
last byte of data from an MP3 file when appending a new ID3v1 tag.
(detected by getID3())
* Lossless-Audio files encoded with and without the -noseek switch
do actually differ internally and therefore cannot match md5_data
* iTunes has been known to append a new ID3v1 tag on the end of an
existing ID3v1 tag when ID3v2 tag is also present
(detected by getID3())
* MediaMonkey may write a blank RGAD ID3v2 frame but put actual
replay gain adjustments in a series of user-defined TXXX frames
(detected and handled by getID3() since v1.9.2)
Reference material:
===========================================================================
[www.id3.org material now mirrored at http://id3lib.sourceforge.net/id3/]
* http://www.id3.org/id3v2.4.0-structure.txt
* http://www.id3.org/id3v2.4.0-frames.txt
* http://www.id3.org/id3v2.4.0-changes.txt
* http://www.id3.org/id3v2.3.0.txt
* http://www.id3.org/id3v2-00.txt
* http://www.id3.org/mp3frame.html
* http://minnie.tuhs.org/pipermail/mp3encoder/2001-January/001800.html <mathewhendry@hotmail.com>
* http://www.dv.co.yu/mpgscript/mpeghdr.htm
* http://www.mp3-tech.org/programmer/frame_header.html
* http://users.belgacom.net/gc247244/extra/tag.html
* http://gabriel.mp3-tech.org/mp3infotag.html
* http://www.id3.org/iso4217.html
* http://www.unicode.org/Public/MAPPINGS/ISO8859/8859-1.TXT
* http://www.xiph.org/ogg/vorbis/doc/framing.html
* http://www.xiph.org/ogg/vorbis/doc/v-comment.html
* http://leknor.com/code/php/class.ogg.php.txt
* http://www.id3.org/iso639-2.html
* http://www.id3.org/lyrics3.html
* http://www.id3.org/lyrics3200.html
* http://www.psc.edu/general/software/packages/ieee/ieee.html
* http://www.scri.fsu.edu/~jac/MAD3401/Backgrnd/ieee-expl.html
* http://www.scri.fsu.edu/~jac/MAD3401/Backgrnd/binary.html
* http://www.jmcgowan.com/avi.html
* http://www.wotsit.org/
* http://www.herdsoft.com/ti/davincie/davp3xo2.htm
* http://www.mathdogs.com/vorbis-illuminated/bitstream-appendix.html
* "Standard MIDI File Format" by Dustin Caldwell (from www.wotsit.org)
* http://midistudio.com/Help/GMSpecs_Patches.htm
* http://www.xiph.org/archives/vorbis/200109/0459.html
* http://www.replaygain.org/
* http://www.lossless-audio.com/
* http://download.microsoft.com/download/winmediatech40/Doc/1.0/WIN98MeXP/EN-US/ASF_Specification_v.1.0.exe
* http://mediaxw.sourceforge.net/files/doc/Active%20Streaming%20Format%20(ASF)%201.0%20Specification.pdf
* http://www.uni-jena.de/~pfk/mpp/sv8/ (archived at http://www.hydrogenaudio.org/musepack/klemm/www.personal.uni-jena.de/~pfk/mpp/sv8/)
* http://jfaul.de/atl/
* http://www.uni-jena.de/~pfk/mpp/ (archived at http://www.hydrogenaudio.org/musepack/klemm/www.personal.uni-jena.de/~pfk/mpp/)
* http://www.libpng.org/pub/png/spec/png-1.2-pdg.html
* http://www.real.com/devzone/library/creating/rmsdk/doc/rmff.htm
* http://www.fastgraph.com/help/bmp_os2_header_format.html
* http://netghost.narod.ru/gff/graphics/summary/os2bmp.htm
* http://flac.sourceforge.net/format.html
* http://www.research.att.com/projects/mpegaudio/mpeg2.html
* http://www.audiocoding.com/wiki/index.php?page=AAC
* http://libmpeg.org/mpeg4/doc/w2203tfs.pdf
* http://www.geocities.com/xhelmboyx/quicktime/formats/qtm-layout.txt
* http://developer.apple.com/techpubs/quicktime/qtdevdocs/RM/frameset.htm
* http://www.nullsoft.com/nsv/
* http://www.wotsit.org/download.asp?f=iso9660
* http://sandbox.mc.edu/~bennet/cs110/tc/tctod.html
* http://www.cdroller.com/htm/readdata.html
* http://www.speex.org/manual/node10.html
* http://www.harmony-central.com/Computer/Programming/aiff-file-format.doc
* http://www.faqs.org/rfcs/rfc2361.html
* http://ghido.shelter.ro/
* http://www.ebu.ch/tech_t3285.pdf
* http://www.sr.se/utveckling/tu/bwf
* http://ftp.aessc.org/pub/aes46-2002.pdf
* http://cartchunk.org:8080/
* http://www.broadcastpapers.com/radio/cartchunk01.htm
* http://www.hr/josip/DSP/AudioFile2.html
* http://home.attbi.com/~chris.bagwell/AudioFormats-11.html
* http://www.pure-mac.com/extkey.html
* http://cesnet.dl.sourceforge.net/sourceforge/bonkenc/bonk-binary-format-0.9.txt
* http://www.headbands.com/gspot/
* http://www.openswf.org/spec/SWFfileformat.html
* http://j-faul.virtualave.net/
* http://www.btinternet.com/~AnthonyJ/Atari/programming/avr_format.html
* http://cui.unige.ch/OSG/info/AudioFormats/ap11.html
* http://sswf.sourceforge.net/SWFalexref.html
* http://www.geocities.com/xhelmboyx/quicktime/formats/qti-layout.txt
* http://www-lehre.informatik.uni-osnabrueck.de/~fbstark/diplom/docs/swf/Flash_Uncovered.htm
* http://developer.apple.com/quicktime/icefloe/dispatch012.html
* http://www.csdn.net/Dev/Format/graphics/PCD.htm
* http://tta.iszf.irk.ru/
* http://www.atsc.org/standards/a_52a.pdf
* http://www.alanwood.net/unicode/
* http://www.freelists.org/archives/matroska-devel/07-2003/msg00010.html
* http://www.its.msstate.edu/net/real/reports/config/tags.stats
* http://homepages.slingshot.co.nz/~helmboy/quicktime/formats/qtm-layout.txt
* http://brennan.young.net/Comp/LiveStage/things.html
* http://www.multiweb.cz/twoinches/MP3inside.htm
* http://www.geocities.co.jp/SiliconValley-Oakland/3664/alittle.html#GenreExtended
* http://www.mactech.com/articles/mactech/Vol.06/06.01/SANENormalized/
* http://www.unicode.org/unicode/faq/utf_bom.html
* http://tta.corecodec.org/?menu=format
* http://www.scvi.net/nsvformat.htm
* http://pda.etsi.org/pda/queryform.asp
* http://cpansearch.perl.org/src/RGIBSON/Audio-DSS-0.02/lib/Audio/DSS.pm
* http://trac.musepack.net/trac/wiki/SV8Specification
* http://wyday.com/cuesharp/specification.php
* http://www.sno.phy.queensu.ca/~phil/exiftool/TagNames/Nikon.html
* http://www.codeproject.com/Articles/8295/MPEG-Audio-Frame-Header
* http://dsd-guide.com/sites/default/files/white-papers/DSFFileFormatSpec_E.pdf