Make WordPress Core

09/26/2017 07:37:02 AM (3 years ago)

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.

1 edited


  • trunk/src/wp-includes/script-loader.php

    r41590 r41597  
    562562        'untitledBlogName'   => __( '(Untitled)' ),
    563563        'serverSaveError'    => __( 'Failed connecting to the server. Please try saving again.' ),
     564        /* translators: placeholder is URL to the Customizer to load the autosaved version */
     565        'autosaveNotice'     => __( 'There is a more recent autosave of your changes than the one you are previewing. <a href="%s">Restore the autosave</a>' ),
    564566        'videoHeaderNotice'   => __( 'This theme doesn\'t support video headers on this page. Navigate to the front page or another page that supports video headers.' ),
    565567        // Used for overriding the file types allowed in plupload.
Note: See TracChangeset for help on using the changeset viewer.