Contributors to the Customize Snapshots feature plugin are steadily building a UI for managing Customizer changesets using the changesets infrastructure added in WordPress 4.7. Version 0.6.0 of the plugin was released this month with an expanded interface for managing the complexities of multi-user editing in the Customizer.
The previous version of Customize Snapshots already supported scheduling but this release introduces a new multi-select save button that allows users to publish, save draft, save as pending, or schedule changes.
Version 0.6.0 adds the ability to name changesets, which is especially helpful for site owners who are sorting and previewing changes submitted by multiple editors. The list of changesets has links for previewing on the frontend, editing in the Customizer, or inspecting the changeset’s content on the edit post screen.
This release introduces the ability to merge multiple changesets into a single changeset, which users can then preview and publish all at once.
Contributors have not yet worked out how this feature will handle conflicting changes submitted by multiple users. It currently accepts whatever change was made more recently, but this isn’t ideal in certain situations. Conflict resolution is on the team’s radar to address in future iterations of the plugin and they are discussing several different approaches.
“Merging changesets would definitely lie in the realm of a power user feature,” Customize component co-maintainer Weston Ruter said. “It would probably not be proposed for core. Nevertheless, the existence of the feature is a demonstration of the kinds of things that can be possible when working with changesets.”
In addition to co-leading WordPress’ Customizer team, Ruter is also the CTO at XWP, where several of the agency’s clients are actively using the Customize Snapshots plugin. News Corp Australia and Beachbody are two companies that have invested in the plugin’s development and are successfully using it at scale on their network of sites.
“When paired with the Customize Posts plugin, it gets really powerful because you can edit multiple posts and pages, along with any of their postmeta, while also editing widgets, nav menus, and any other settings, and all of these changes are all bundled together in a single changeset,” Ruter said. “This changeset can then be previewed on the frontend, including by sharing the URL with an unauthenticated user (like a 3rd party who can’t even access the Customizer), and they can click around the site with all of the customizations applied as if they had been published.”
Ruter said the Customizer team isn’t currently targeting a WordPress release for getting these new UI additions added to core but rather view the progress as “prototypes for what could be merged into core, bit by bit.” He identified several tickets that the plugin provides prototype interfaces for:
- #28721: Scheduled changes for the customizer
- #31089: Add revisions and statuses for changesets
- #21666: Customizer reset/undo/revert
- #39896: Customizer: Allow users to Draft changes before Publishing
“Core development is still very much focused on the editor — Gutenberg — so the far-reaching Customizer changes are not being emphasized yet,” Ruter said. Meanwhile progress continues on the Customize Snapshots plugin, which was completely rewritten for the 0.6.0 release after most of its infrastructure was merged into WordPress 4.7. Ruter’s team is not sure which features will eventually land in core, but the various Customizer feature plugins give users an idea of the power of the changesets infrastructure that is already included in WordPress.