=== Deploy & Sync Content ===
Contributors: ealab
Tags: deploy, download, upload, transfer, sync
Requires at least: 6.0
Tested up to: 6.8
Requires PHP: 7.4
Stable Tag: 2.2.0
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Move your content easily from your production instance to your development
instance.

== Description ==

**⚠️ Warning: Experimental plugin. Please make a full backup before use and test thoroughly.**

= About =

The *WordPress* ecosystem has never offered a simple solution for managing content between environments. Since its inception, one problem persists: granular deployment of content and configurations.

You develop on a test site and want to send only certain content to your production site. With existing tools, two scenarios often occur: creating duplicates... or having to overwrite the entire database. The constraints imposed by the diversity of plugin ecosystem operations have already caused several attempts to fail.

We are convinced that a solution is possible.

That's why we designed *Deploy & Sync Content*: a new approach, designed to finally offer selective synchronization between your environments.

= Main Features =
The free version offers unidirectional synchronization (Production → Staging/Local), ideal for simply transferring your content and media between your sites.

For bidirectional synchronization and advanced features, check out the Pro version(https://wp-deployer.io/en/features).

**Intelligent database merging**: The plugin detects existing content to update or create it as needed. You thus maintain the consistency of your environments and avoid any loss of information.

**Unidirectional synchronization (free version)**: Production → Staging/Local: quickly transfer your content and media between your sites.

**Data conflict management**: The tool identifies and allows you to resolve differences before import, ensuring updates without loss.

**Automatic ID mapping**: Avoid duplicates and inconsistencies related to page builders and ID references.

**Preservation of content relationships**: Posts, taxonomies, media and metadata remain correctly linked after each synchronization.

== Terms of use and External Services ==

*Deploy & Sync Content* is free to use and relies on the following services:

1. **Online Configuration Service** (wp-deployer.io)
   - **Purpose**: Configures and updates the export/import system. This service is optional, but recommended until alternatives are provided by the community.
   - **Data Collection**:
     * IP address of your WordPress instance
     * Production URL (from plugin settings)
     * Site URL
   - **When Used**:
     * During plugin activation
     * For configuration updates
     * For license verification (Pro version)
   - **Security**: This data is used to protect our systems from spam and malicious use
   - **Privacy**: Data is not shared with any business partners
   - **Terms & Privacy**: [https://wp-deployer.io/en/general-terms-and-conditions-use-gtcu](https://wp-deployer.io/en/general-terms-and-conditions-use-gtcu)

2. **Local Data Storage**
   - **Purpose**: Temporary storage for content synchronization
   - **Location**: in the `uploads` directory of your WordPress installations
   - **Security**: Data is stored on your servers and is not transmitted to any external services

== Installation ==
- Install and activate first on your production instance. You will be guided
through the activation steps.
- Then do the same on your development instance. Please note that it's highly recommended that your development instance shares a common history with the production instance.

== Frequently Asked Questions ==
= Is my site compatible? =
To know if your site is compatible, you can refer to the page https://wp-deployer.io/en/compatibility-wp-plugins-and-themes

If one of your plugins is not on the list, its compatibility must be checked before using *Deploy & Sync Content*.

You can ask the developers of the unchecked plugin to make it compatible with our system.

= I'm a plugin developer! How do I make my plugin compatible? =
Please contact us on our forum. The process to make your plugin compatible varies over its complexity, so we'll need you to share technical details on how it works.

= How does an import work? =
Launch the diff from the *Deploy & Sync Content* interface on your staging/local.

The system generates a package with your changes to verify and merge.

It identifies existing content to update or create as needed, ensuring continuity and consistency of your environments.

Then click on import, the existing content from your production on your staging/local will be saved.

= Can I synchronize my staging site to production? =
The free version only allows one-way synchronization (Production →
Staging/Local). The *Pro* version allows bidirectional synchronization to send
your staging content to production.

= What types of content are supported? =
All core *WordPress* content is supported: posts, pages, media, taxonomies.
Third-party content may be supported such as WooCommerce products. 3rd-party
support may vary.

= Does the plugin work on shared hosting? =
*Deploy & Sync Content* should work on most types of hosting, including
shared servers, VPS, and cloud solutions. If it doesn't work for you, feel
free to contact us on the forum.

= How do I manage data conflicts between my production site and my staging site? =
*Deploy & Sync Content* includes an advanced conflict detection system, allowing you to
review and resolve differences before importing the synchronization.

= Is there a limit to the number of content items that can be synchronized? =
The free version contains a limit per synchronization, mostly for performance
reasons. This limit may be lifted after some performance work is done.

= Does Deploy & Sync Content support CLI commands? =
Yes, *Deploy & Sync Content* includes a command-line interface (CLI) for integration into
CI/CD workflows and automation of synchronizations.

== Credits ==
*Deploy & Sync Content* is developed by *EA Lab*.

*Deploy & Sync Content* includes the *plugin.json* file from the *WP Optimize* plugin
(GPLv2+ licensed).

*Deploy & Sync Content* includes various software dependencies taken from the packagist
repository, listed in **vendor** and **vendor-prefixed** directories. Most
of them are unaltered in functionality. The only patched library is
`jfcherng/php-diff`, which has been patched for translation and customized
rendering.

== Changelog ==
= 2.2.0 =
* **Fix**: postmeta relying on excluded posts do not make the UI crash anymore.
* **Fix**: Reference fields pointing on inexistant or excluded items do not crash anymore.
* **Fix**: Items referencing unmodified items will now force retrieve such items instead of returning null or throwing an exception.
* **Fix**: Fixed nonce problems (unmatched values) preventing imports.
* **Fix**: Fixed package sending bug that was caused by misuse of getBaseDirectory.

* **New**: New transmutation handler: DelimitedTransmutationHandler (UI to do).

= 2.1.1 =
* **Fix**: Fixed settings form that unsets values upon save instead of keeping them.

= 2.1.0 =
* Compliance fixes.

= 2.0.4 =
* Compliance fixes.

= 2.0.3 =
* Compliance fixes.

= 2.0.2 =
* Compliance fixes.

= 2.0.1 =
* Compliance fixes.

= 2.0.0 =
* Initial release!
