Title: Wonderful Sync
Author: wonderfulplugins
Published: <strong>October 28, 2026</strong>
Last modified: October 28, 2026

---

Search plugins

![](https://ps.w.org/wonderful-sync/assets/icon.svg?rev=3770293)

# Wonderful Sync

 By [wonderfulplugins](https://profiles.wordpress.org/wonderfulplugins/)

[Download](https://downloads.wordpress.org/plugin/wonderful-sync.1.0.3.zip)

 * [Details](https://wordpress.org/plugins/wonderful-sync/#description)
 * [Reviews](https://wordpress.org/plugins/wonderful-sync/#reviews)
 *  [Installation](https://wordpress.org/plugins/wonderful-sync/#installation)
 * [Development](https://wordpress.org/plugins/wonderful-sync/#developers)

 [Support](https://wordpress.org/support/plugin/wonderful-sync/)

## Description

You rebuild a site on a staging copy. Meanwhile the live site keeps taking orders,
comments and form entries. Copying the whole database back would wipe all of that.

Wonderful Sync moves only what you changed on staging:

 * **Changes since the clone:** record a baseline right after cloning. Wonderful
   Sync lists every page, layout, menu, medium and design setting that is new, changed
   or deleted since then.
 * **Divi first:** Theme Builder templates and layouts, Divi Library, theme options,
   presets, global colors and variables. Divi’s CSS cache is cleared after every
   transfer.
 * **Conflicts instead of overwrites:** if a page was also changed on live since
   the clone, you see it and decide. Nothing is overwritten silently.
 * **IDs and URLs fixed on the way:** new objects may get other IDs on live; references
   in Divi modules, menus, Theme Builder templates and the front page setting follow.
   Staging URLs become live URLs, also in JSON and serialized data.
 * **Snapshot and rollback:** the live site saves every object it is about to change.
   A transfer can be rolled back; objects edited on live since then, or whose state
   is unknown after an interrupted transfer, are only restored when you confirm 
   it. Keep a regular backup as well.
 * **Never synced by design:** users, comments, orders, form entries, stock and 
   sales figures, SMTP and payment settings, site URL, search engine visibility,
   caches. The live site applies these rules itself and refuses such data even inside
   a bundle. Fields whose names look like licence or API keys keep the live value,
   and values that cannot be inspected safely (stored PHP objects) are not transferred.
   Plugins that store secrets under ordinary names are not recognised automatically:
   classify them with the `wonderful_sync_classify` filter and check the Inventory
   tab before the first transfer.
 * **Plugins and themes:** never copied. The preview lists plugins and themes that
   are missing, inactive or in another version on live, and blocks Divi data if 
   Divi on live is older.

Transfer directly over the REST API with an application password, or as a bundle
file you upload on the live site. Everything also works with WP-CLI (`wp wsync`),
for scripts and AI agents.

Full walkthrough (4 minutes): live to staging, Divi presets, media, menus, block
editor posts.

## Screenshots

[⌊Changes on the staging copy since the clone: design, layouts, content and site
settings.⌉⌊Changes on the staging copy since the clone: design, layouts, content
and site settings.⌉[

Changes on the staging copy since the clone: design, layouts, content and site settings.

[⌊The live site checks the package and shows what will happen.⌉⌊The live site checks
the package and shows what will happen.⌉[

The live site checks the package and shows what will happen.

[⌊A page changed on both sites: both versions side by side.⌉⌊A page changed on both
sites: both versions side by side.⌉[

A page changed on both sites: both versions side by side.

[⌊Result of a transfer.⌉⌊Result of a transfer.⌉[

Result of a transfer.

[⌊Live to staging: changes made on the live site, taken over into the staging copy.⌉⌊
Live to staging: changes made on the live site, taken over into the staging copy
.⌉[

Live to staging: changes made on the live site, taken over into the staging copy.

[⌊Transfer log on the live site with a rollback for every transfer.⌉⌊Transfer log
on the live site with a rollback for every transfer.⌉[

Transfer log on the live site with a rollback for every transfer.

[⌊Inventory: what may move and what always stays.⌉⌊Inventory: what may move and 
what always stays.⌉[

Inventory: what may move and what always stays.

## Installation

 1. Install and activate the plugin on the staging copy and on the live site.
 2. On staging, open Wonderful Sync in the admin menu and record the baseline right
    after cloning.
 3. On live, open Wonderful Sync > Settings and create access for the staging copy (
    user name and application password are shown once).
 4. On staging, enter the live URL, the deploy user and its application password under
    Connection.
 5. Make your changes, then open Changes, select what should go live and click Preview
    on live site.

## FAQ

### Does the plugin send any data anywhere?

Only to the live site you connect yourself, over HTTPS (plain HTTP only between 
two local test sites, when WONDERFUL_SYNC_ALLOW_LOCAL_TARGETS is set). No third-
party service is involved.

### What happens to orders and comments made on live while I work on staging?

They stay. Users, comments, orders and form entries are never part of a changeset,
and the live site refuses them even if a bundle contained them. Pages deleted on
staging are moved to the trash on live; their comments stay. Menus, categories and
tags are never deleted on live – the preview lists them. Mails that a transfer would
trigger are not sent.

### Which user should I connect with?

On the live site, go to Wonderful Sync > Settings and create access for the staging
copy. This creates a user with the role “Wonderful Sync access” and an application
password. That user can apply and roll back changes through Wonderful Sync and nothing
else.

### What can the staging copy change on the live site?

Pages, posts, media, menus, Divi design and layouts, and display settings such as
the site title, front page, widgets and image sizes. It cannot install, activate
or edit plugins and themes, manage users or log in, and it cannot change permalinks,
discussion and moderation rules or other administration settings. There is no service
in between: the two sites talk directly, both belong to you, and the access can 
be revoked by deleting the user or its application password. Content is written 
unfiltered only when WordPress allows unfiltered HTML for that user, and never when
DISALLOW_UNFILTERED_HTML is set.

### Where are snapshots stored?

In a folder with a random name inside the uploads directory, protected by .htaccess.
The live site checks that the folder cannot be downloaded from the web before it
accepts a transfer. On nginx, or when the site cannot reach itself, define WONDERFUL_SYNC_STORAGE_DIR
in wp-config.php with a writable directory outside the web root.

No baseline is recorded while the folder may be public. `wp wsync storage` shows
the result of the check and why it failed. After setting the constant, `wp wsync
storage --move` moves existing files out of uploads.

### Can I bring changes from live into staging?

Yes. Wonderful Sync > Live  Staging on the staging copy lists what changed on the
live site since the baseline, for example new blog posts. Selected changes are copied
into the staging copy with the same checks, conflicts and rollback. A later transfer
to live then does not overwrite them.

### Can I undo a transfer?

Yes. Wonderful Sync > Transfer log on the live site lists every transfer with a 
rollback button. Objects that were edited on live after the transfer are only restored
if you confirm it. Plugins and themes are not part of a transfer and therefore not
of a rollback.

### Do I need Divi?

No. Pages, posts, media, menus and site settings work with any theme. Divi gets 
extra support, and image IDs in Flatsome’s UX Builder shortcodes are mapped as well.

### Does it work with Pods?

Yes. Relationship and file fields of pods travel with their posts and terms, IDs
are mapped on live. Pods, field groups and fields can travel too; this can be switched
off in the settings.

## Reviews

![](https://secure.gravatar.com/avatar/656264ed3e4cbeedaae6a9d7f15de9c4e30d3bcd4f40fbc8f1328dcb3b7b7822?
s=60&d=retro&r=g)

### 󠀁[Great plugin! Saves a ton of time](https://wordpress.org/support/topic/great-plugin-saves-a-ton-of-time/)󠁿

 [benedikttomaselli](https://profiles.wordpress.org/benedikttomaselli/) October 
28, 2026

This plugin is a blessing, especially if you work with Divi. It keeps the complete
setup in sync. And not just pages and layouts, but variables, presets and components
as well. For everyone working with Divi and a Dev/Staging or Local (Docker) environment,
this is the plugin to do it!

 [ Read all 1 review ](https://wordpress.org/support/plugin/wonderful-sync/reviews/)

## Contributors & Developers

“Wonderful Sync” is open source software. The following people have contributed 
to this plugin.

Contributors

 *   [ wonderfulplugins ](https://profiles.wordpress.org/wonderfulplugins/)

[Translate “Wonderful Sync” into your language.](https://translate.wordpress.org/projects/wp-plugins/wonderful-sync)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/wonderful-sync/), check
out the [SVN repository](https://plugins.svn.wordpress.org/wonderful-sync/), or 
subscribe to the [development log](https://plugins.trac.wordpress.org/log/wonderful-sync/)
by [RSS](https://plugins.trac.wordpress.org/log/wonderful-sync/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 1.0.3

 * Videos in the readme, German screenshots.

#### 1.0.2

 * Admin menu moved below the core menus.
 * Permalinks and discussion settings are no longer transferred.
 * Creating access for the staging copy asks for confirmation.
 * DISALLOW_UNFILTERED_HTML also applies to WP-CLI transfers.

#### 1.0.1

 * No baseline in a snapshot folder that may be public.
 * Clearer storage warning, with the reason when the check fails.
 * New: wp wsync storage, and –move to move files out of uploads.
 * Divi announcements cache is no longer listed as a design change.

#### 1.0.0

 * First version: baseline, changeset, preview with conflicts, transfer over REST
   or package file, snapshots and rollback, inventory, WP-CLI.
 * Live  Staging: copy changes made on live into the staging copy.
 * Flatsome image IDs in UX Builder shortcodes.
 * Pods: relationship and file fields, and the Pods structure.
 * Divi: fonts, Theme Builder conditions, menus and categories in modules, dynamic
   content, references in presets.
 * Each object is written in its own database transaction.

## Meta

 *  Version **1.0.3**
 *  Last updated **2 days ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 6.2 or higher **
 *  Tested up to **7.1.4**
 *  PHP version ** 7.4 or higher **
 * Tags
 * [deployment](https://wordpress.org/plugins/tags/deployment/)[divi](https://wordpress.org/plugins/tags/divi/)
   [migration](https://wordpress.org/plugins/tags/migration/)[staging](https://wordpress.org/plugins/tags/staging/)
   [sync](https://wordpress.org/plugins/tags/sync/)
 *  [Advanced View](https://wordpress.org/plugins/wonderful-sync/advanced/)

## Ratings

 5 out of 5 stars.

 *  [  1 5-star review     ](https://wordpress.org/support/plugin/wonderful-sync/reviews/?filter=5)
 *  [  0 4-star reviews     ](https://wordpress.org/support/plugin/wonderful-sync/reviews/?filter=4)
 *  [  0 3-star reviews     ](https://wordpress.org/support/plugin/wonderful-sync/reviews/?filter=3)
 *  [  0 2-star reviews     ](https://wordpress.org/support/plugin/wonderful-sync/reviews/?filter=2)
 *  [  0 1-star reviews     ](https://wordpress.org/support/plugin/wonderful-sync/reviews/?filter=1)

[Your review](https://wordpress.org/support/plugin/wonderful-sync/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/wonderful-sync/reviews/)

## Contributors

 *   [ wonderfulplugins ](https://profiles.wordpress.org/wonderfulplugins/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/wonderful-sync/)