Version 6.10.0 of Go Live Update Urls plugin is now available and ready for general use.
This version focused on supporting uncommon data edge cases. This plugin now supports literally every known data type found in a WordPress database.
Serialized Data Key Support
Until now, this plugin would only replace URLs found in the values of serialized database data. Now URLs are replaced in the keys as well.
For example, if the following object is stored in the database.
Running this plugin with “example.com” as the Old URL and “new.com” as the New URL will now update the object to be.
This covers cases where domains are used as array or object keys and prevents serialized data from breaking due to side updates.
Sub Serialized Data Support
If an option, meta value, or other similar data type is updated in WordPress by passing a previously serialized value, WordPress will automatically wrap the value in a S:
tag. If an S:
tag is present when un-serializing a value, it will be converted to the serialized string and not the containing object or array.
This plugin now detects cases of serialized strings within data and will update the containing object or array completely.
Enhanced Data Updaters
We’ve improved our “Updaters” to make them more reliable and extendable.
New get_formatted
method
Every updater now includes a get_formatted
method which returns the result of the old and new URL after the format of the updater is applied. This allows getting inside the process to calculate variation based on the combination of old and new and not just one at a time.
New is_appending_update
method
If an old URL does not meet the criteria of the current updater but the new URL does, we can now detect this change and adjust the update criteria accordingly.
For example, say an old URL is “example.com” and a new URL is “newdomain.com/path”. While using the urlencoded updater, we now know that we need to replace “newdomain.com/path” with “newdomain.com%2Fpath” instead of trying to replace “example.com” with “newdomain.com%2Fpath”.
We’ve also added preceding characters within the replacement to assure we are only updating cases of the correct type. Expanding on the prior example, we are actually replacing “%2Fnewdomain.com/path” with “%2Fnewdomain.com%2Fpath” thus preventing any replacements of non-urlencoded URL.
New get_priority
method
Instead of relying on the array order when retrieving the updaters, they now support a get_priority
method which returns an integer to order by. The priority works similar to how WordPress handles actions and filters priority.
We can now guarantee that updaters are run in the correct order even if the list is changed by another plugin adding filters.
Miscellaneous
- Tested to WordPress core 6.3.
- Updated the minimum WordPress core requirement to version 5.8.
- Improved help tooltip placement and spacing to provide better translation support.
- Included
table
androw_id
information to error log when a row is skipped. - Added full automated testing support against the minimum supported WordPress version.
- Added new unit test fixtures with 100s of new assertions.
- Improved miscellaneous PHP docs and type hints.
- Fixed issue with updaters breaking paths when adding a sub-path to a URL.