Repository navigation
Releases: DiluxOne/diluxone-multisite-user-sync-wordpress
Releases · DiluxOne/diluxone-multisite-user-sync-wordpress
Release list
Development build 2.0.1-dev.20
Development build 2.0.1-dev.20 of DiluxOne wpm-user-sync, from commit b6f9fc6. Not a release: it is replaced on every push to main, it is not on wordpress.org, and a site that installs it updates to the release when it is published.
Install: download wpm-user-sync.zip below, then in WordPress: Plugins → Add New → Upload Plugin. Status › System shows the version and the build.
Coming in the next version:
- The plugin is now called DiluxOne Multisite User Sync, in the DiluxOne family. Nothing else changes for your network: same settings, same screens, same slug.
- Requires PHP 8.0 or newer (it was 7.4). Tested with WordPress 7.1.
- Security: the new-site trigger gave each new site's members the role they held on the main site, so main-site editors and administrators became editors and administrators of every new site. Every new membership now gets the new site's own default role, and subscriber when that role does not exist there.
- Security: the role trigger copied any role, administrator included, to every site the user belonged to, even where the role does not exist. It now copies a role only to sites that define it, never copies administrator (a developer can allow it with the
wpmus_replicate_rolefilter), leaves super admins alone and ignores changes that change nothing. - Security: any site administrator could run the site-level "Sync from scratch" and pull every account of the network into their site. The site screens and their action are now for super admins only, and so are the network actions.
- People removed from a site were put back on it at their next sign-in, and by the new-user trigger and the manual sync. The plugin now remembers who was removed from which site and no sync adds them back, unless you tick "Also add back people who were removed from a site" on a manual sync. Adding someone back yourself clears the record.
- Removed: the catch-up sync that ran on every sign-in. Accounts created outside the normal flows (imports, SQL) are added with the manual network sync.
- Super admins are no longer added as members of every site, and archived, spam and deleted sites, and the sites of other networks on the same install, are left alone.
- The new-site trigger now listens on
wp_initialize_siteinstead of the deprecatedwpmu_new_blog, and the new-user trigger also covers accounts created withwp_insert_user()alone (some registration plugins), once per account. - Turning a trigger on or off takes effect immediately instead of from the next page load.
- Big networks: syncs no longer load every user into memory, and a large one (a new site or a manual sync on a big network, a new user on a network with many sites) runs in the background through WP-Cron in batches, with its progress on the Network Sync Actions screen; the background runs commit their writes together about once a second instead of one at a time. Small syncs still finish at once.
- New filters for developers:
wpmus_excluded_site_ids,wpmus_should_sync_user,wpmus_replicate_role,wpmus_sync_inline_limit,wpmus_sync_batch_size,wpmus_sync_time_limitandwpmus_sync_group_writes. - On a site that is not a network, the plugin now only explains that it needs WordPress Multisite and deactivates itself; nothing else of it runs in the meantime.
- Uninstalling now also removes the background sync queue, its scheduled event and the record of removals.
- The plugin's stylesheet loads only on its own screens instead of on every admin screen.
- Translations written for Spanish (Argentina, Spain, Mexico), Portuguese (Brazil, Portugal), French, German and Italian, to be contributed to translate.wordpress.org; WordPress installs them from there. The plugin no longer loads translations itself.
2.0.0
Requires PHP 8.0. Security fixes: new sites no longer copy main-site roles, removed people stay removed, administrator is never copied, and site administrators can no longer pull the whole network into their site.
What was merged since 1.5.0
🐛 Fixes
- admin escape two outputs, verify a nonce, literal SQL (#36)
- coverage measure line coverage of every layer and fail below the floors (#30)
- sync commit a batch's writes in groups of about a second (#29)
- sync keep jobs queued during a batch and retry a queue a dead run left locked (#28)
- sync safe roles on new sites, removals respected, super admins and inactive sites skipped, batched syncs (#25)
👷 CI
- release publish to wordpress.org instead of rehearsing (#41)
- workflows adopt the organisation's v5 setup (#37)
- policy let strict Plugin Check accept the published slug (#34)
🔧 Maintenance
1.5.0
Release 1.5.0: OOP refactor + security hardening + Azure positioning