16:58:53 GMT+0000
This change removes the creation of async post publish cron jobs if they are not being utilized. If the relevant hooks are in use, the cron jobs will continue to be created normally.
Ready to get started with WordPress VIP? Contact us
The VIP Platform Changelog includes updates made to the functionality and behavior of the platform's tooling (i.e. VIP Dashboard, VIP-CLI), VIP MU plugins, VIP File System, caching layers, and other underlying architecture and software.
16:58:53 GMT+0000
This change removes the creation of async post publish cron jobs if they are not being utilized. If the relevant hooks are in use, the cron jobs will continue to be created normally.
16:58:50 GMT+0000
It used to be possible to return an undefined variable in A8C_File::purge_file_cache. The function has been made more defensive and as such this is no longer possible.
16:58:46 GMT+0000
We’re continuing to clean up code that isn’t 100% compliant with our coding standards.
16:58:41 GMT+0000
The gutenberg-ramp plugin is deprecated and should not be in regular use. To make this transition easier and to stay aware of all users, we have upgraded gutenberg-ramp to the latest upstream version. This upgrade brings alerting such that if sites continue to call the main function of the gutenberg-ramp plugin, we will be alerted. The idea being that we want to remove all usage of the plugin and need to know if the plugin is still being used and by whom.
16:58:37 GMT+0000
Fixed an issue where the ElasticPress debug bar panel wasn’t showing the expected data when used with debug bar without WP_DEBUG or equivalent constant set to true.
16:58:33 GMT+0000
We wrapped the usage of VIP_GO_APP_ENVIRONMENT in a defined check so it won’t throw warnings anymore.
16:58:29 GMT+0000
Creates an admin notice indicating the site may be indexable by search engines if blog_public option is 1

Additionally, the notice does not show if:
manage_options1).go-vip.co or .go-vip.nethttps://github.com/Automattic/vip-go-mu-plugins/pull/1597
16:58:24 GMT+0000
Removes minor warning from wp vip-search health validate-contents when some parameters are not set. The correct default values are set both before and after this change.
https://github.com/Automattic/vip-go-mu-plugins/pull/1989
10:10:39 GMT+0000
This version of ElasticPress contains changes to how mappings are built – it breaks out the generation from the API requests to make it reusable.
#mu-plugins, #search
10:10:34 GMT+0000
Adds a sanitization step to the generated EP query to prevent sensitive info from being logged.
10:07:49 GMT+0000
Changed how a VIP Search cron job is scheduled – previously it was hooked into rest_api_init along with 2 other hooks, but this is unnecessary overhead as the job will be scheduled reliably via WP CLI (which runs regularly via cron).
23:42:55 GMT+0000
This change adds an automated daily backup of the user roles option that can be used to recover roles if they are corrupted. It also adds some CLI commands to aid in managing these backups.
09:37:01 GMT+0000
Web have upgraded Jetpack 9.4 subtree to Jetpack 9.4.1, the latest patch release.
Not a lot of changes, just a few bugfixes and improvements.
23:59:24 GMT+0000
When the Restrict Unpublished Files module is enabled, a post update will now automatically purge the URLs for any child attachments for that post. This allows us to quickly propagate visibility changes and also cache public files for much longer, which has several performance benefits.
23:59:19 GMT+0000
Passing a query string like http://vip-go-dev.lndo.site/?name[]=test will cause the below php error:
PHP Warning: trim() expects parameter 1 to be string, array given in /app/wp/wp-includes/class-wp-query.php on line 779
Because WordPress interprets these sorts of query strings as single post or single page queries – it will end up with a main query that looks like the SQL query below – which is notably limitless:
SELECT wp_posts.*
FROM wp_posts
WHERE 1=1
AND wp_posts.post_type = 'post'
ORDER BY wp_posts.post_date DESC
This is a stopgap while awaiting the resolution of the following core ticket:
23:59:06 GMT+0000
In a multisite install, we support running mixed private and public sites. To harden our ACL endpoint and prevent accidentally leaking private files via public sites, we now restrict access to files on the same subsite.
23:59:01 GMT+0000
To harden the feature and avoid unexpected issues when the ACL endpoint may hit an error (e.g. fatal), we now will always send the X-Private header when the endpoint successfully processes the file. This way, we can differentiate between successful and unsuccessful requests and handle them appropriately upstream.
23:58:56 GMT+0000
We’ve added a fix that properly handles files with a subsite path (e.g. /wp-content/uploads/sites/4/2021/01/unpublished.jpg) with our Private Files feature. We now strip the sites/:id portion of the path before forwarding the request to WordPress.
23:58:35 GMT+0000
This change skips count validation on indexes that have no documents – these are assumed uninitialized. This results in a special line in the CLI initiated report:
$ wp vip-search health validate-counts
Validating post count
✅ no inconsistencies found when counting entity: post, type: post, index_version: 2 - (DB: 5, ES: 5, Diff: 0)
✅ no inconsistencies found when counting entity: post, type: page, index_version: 2 - (DB: 1, ES: 1, Diff: 0)
🟧 skipping, because there are no documents in ES when counting entity: post, type: post, index_version: 3
🟧 skipping, because there are no documents in ES when counting entity: post, type: page, index_version: 3
Validating user count
✅ no inconsistencies found when counting entity: user, type: N/A, index_version: 1 - (DB: 3, ES: 3, Diff: 0)
✅ no inconsistencies found when counting entity: user, type: N/A, index_version: 2 - (DB: 3, ES: 3, Diff: 0)
Also, the health cron job will not report mismatches for indexes with 0 documents.
23:58:31 GMT+0000
Activated the already-deployed code to detect and mitigate problems with the notoptions cache.