Customize: Extend changesets to support autosave revisions with restoration notifications, and introduce a new default linear history mode for saved changesets (with a filter for opt-in to changeset branching).
- Autosaved changes made on top of
auto-draft
changesets get written on top of the auto-draft
itself, similar to how autosaves for posts will overwrite post drafts.
- Autosaved changes made to saved changesets (e.g.
draft
, future
) will be placed into an autosave revision for that changeset and that user.
- Opening the Customizer will now prompt the user to restore their most recent auto-draft changeset; if notification is dismissed or ignored then the auto-draft will be marked as dismissed and will not be prompted to user in a notification again.
- Customizer will no longer automatically supply the
changeset_uuid
param in the customize.php
URL when branching changesets are not active.
- If user closes Customizer explicitly via clicking on X link, then autosave auto-draft/autosave will be dismissed so as to not be prompted again.
- If there is a changeset already saved as a
draft
or future
(UI is forthcoming) then this changeset will now be autoloaded for the user to keep making additional changes. This is the linear model for changesets.
- To restore the previous behavior of the Customizer where each session started a new changeset, regardless of whether or not there was an existing changeset saved, there is now a
customize_changeset_branching
hook which can be filtered to return true
.
wp.customize.requestChangesetUpdate()
now supports a second with options including autosave
, title
, and date
.
- The window
blur
event for customize.php
has been replaced with a visibilitychange
event to reduce autosave requests when clicking into preview window.
- Adds
autosaved
and branching
args to WP_Customize_Manager
.
- The
changeset_uuid
param for WP_Customize_Manager
is extended to recognize a false
value which causes the Customizer to defer identifying the UUID until after_setup_theme
in the new WP_Customize_Manager::establish_loaded_changeset()
method.
- A new
customize_autosaved
query parameter can now be supplied which is passed into the autosaved
arg in WP_Customize_Manager
; this option is an opt-in to source data from the autosave revision, allowing a user to restore autosaved changes.
Props westonruter, dlh, sayedwp, JoshuaWold, melchoyce.
See #39896.