Opens in a new tab

Changelog

Release notes for WPChangeSync (formerly BricksSync). The current release is 2.2, which shows what a push will change before it happens, lets you undo it afterwards, runs pushes in the background, and adds Polylang and WPML support. The history below traces its growth from a Bricks template exporter into a full sync, migration, and automation engine.

v2.2.0October 2026

Important

  • Update both sites to 2.2. Pushes between 2.2 and older versions keep working, but the push preview, undo, change notes, Only changes since last push and recognising which site sent an item need 2.2 on both sides. Test connection in Settings, Remotes warns about a version mismatch.
  • Change notes are off until you switch them on in Settings, General, Change notes.
  • Re-export your Bricks templates once after updating. Template files written by earlier versions contain the site's internal version history, so they show as changed in the Library until re-exported.
  • Pushing SVGs: the receiving site must allow SVG uploads for the user your remote connection signs in as (in Bricks, Settings, SVG uploads for that role). If it doesn't, the push now tells you which files were refused.
  • Importing Bricks settings now only adds role permissions and never removes them, so enabling SVG uploads on your live site isn't undone by the next push.
  • WPML sites: re-export before importing storage files written by earlier versions. Items without a language whose slug exists in several languages are skipped with a clear message.

Added

  • Push preview. Push Selected first shows what the push would change on the remote, item by item: new, updated (with the fields that change) or unchanged, and what would be skipped and why. Untick items to leave them out. Nothing is written until you click Push now.
  • Undo last push. The receiving site records what every push changes, and Undo last push in Settings, Remotes puts it back exactly: posts, custom fields, terms, translation links, settings, custom tables and replaced images. Undo all of it or only the items you tick; items edited on the remote since the push are flagged.
  • Pushes run in the background with a progress bar. You can close the window and the push keeps going; a push can be cancelled midway. One push per remote at a time, with a banner in the Library while one is running.
  • Only changes since last push: send only the items that changed on your site since the last successful push to that remote, for fast incremental deploys from the Library or a workflow.
  • Deploy a Bricks rebuild onto a live site: the Bricks layout only option updates just the layout of pages that already exist on the remote, so they keep their own title, text and fields. The new Deploy a Bricks rebuild workflow template moves the design system and the page layouts in two steps.
  • Polylang support. Content syncs per language and translation groups are rebuilt on the destination, also between a WPML site and a Polylang site with the same languages. An optional mode mirrors the sender's translation links.
  • Change notes: give a push, pull, import, export, workflow run or undo a title and comment, shown in the Activity log and carried with a push to the receiving site. Optional, or required when you set it up.
  • Workflow dry runs show the real preview of each push step, and a new Preview report step emails what is waiting to be deployed, for example every morning.
  • Sync doctor: Test connection checks plugin versions, whether the remote can download files from your site, SVG permission, upload limits, Bricks and languages, and says what to fix. Pushes adapt on their own.
  • Media is recognised by its content, so the same file under another name is reused and a different file with the same name is never mixed up.
  • Meta Box image, file and post fields, also inside groups and cloneable groups, are reconnected on the destination without setup, and their images travel with pushes, like ACF images.
  • Renamed pages update instead of being duplicated, two sites pushing to one site never mix up items, and a site keeps its identity when it moves to another domain.
  • WPML support. Posts, pages, custom post types and Bricks templates sync per language: each item is matched only against posts in its own language, and new translations are linked into the right translation group, even when a translation arrives before its original. Translations that share a slug get their own storage file, such as page-contact__en.json, instead of overwriting each other.
  • An Include media option on the Library's Push Selected bundles the images the pushed items use, featured, inline and Bricks element media, so a pushed template looks identical on the other site. Bricks element images are also fetched from the source site automatically when the destination doesn't have them.
  • Workflow steps have an Include media files option, and the Export to Storage and Full Site Sync templates now include global styles, and with them custom fonts, and media.

Reported by you

  • The Library's Preview Dependencies button works again. It had done nothing since 2.0, so post-type exports could not include their media files or ACF field groups.
  • Bricks custom fonts are exported and imported with their font files. The font module never loaded, looked for storage in the wrong place, and imports could not read stored files. The same loading bug kept Bricks capability sync, CSS regeneration after import and the builder panel from loading.
  • SVGs and Bricks logos survive a push. The Logo element, SVG and Audio element files, video posters, image masks and map markers are reconnected on the destination instead of keeping the source site's attachment ID.
  • Media the destination refuses, for example an SVG where SVG uploads aren't allowed, is now reported in the import result and the push notice instead of being dropped silently.
  • Pushing media from a local site to a live one now transfers the files. They used to carry only a URL the live site had to download from your computer, while the push still reported success. From a local site, or with Include media ticked, files up to 8 MB now travel inside the push, and the Library and workflow pushes include your content's images automatically.
  • Every push, from the Library, the editor or a post list, now lists the files the receiving site refused. An edited image or SVG pushed again replaces the destination's file, and an SVG is no longer matched to a PNG with the same name.
  • Pulling a page in the editor on a WPML site fetches that page's own language.
  • New per-remote setting, Always send files with pushes to this remote, for remotes that can't download from your site. Large pushes are split into several requests automatically.
  • SVGs downloaded from the source site are sanitized like uploads, and a pushed file only replaces a destination file that was synced from the same item before.
  • The Allow editor Push/Pull buttons setting for a remote is now saved.
  • Pushing templates can no longer switch your 404 page, default templates or theme-style conditions to the wrong template.
  • Pushed custom fonts arrive with their font files, also from a local site.
  • The Library shows imported items as In sync: files exported on another site, or with bundled media, no longer read as changed.
  • Push to… in a post list, such as Bricks, My Templates, no longer lands you on All Posts: you return to the list you started from.
  • The workflow Include ACF field groups option now applies to file exports.

Sync accuracy

  • An import can no longer overwrite a media item that shares a post's slug, such as a header template and an image called header.png.
  • Bricks templates no longer export the site's internal version history and source-ID records, which bloated every file and kept templates from ever showing as In sync.

Security

  • Imported SVGs go through the site's SVG sanitizer, Bricks' built-in one or a plugin such as Safe SVG, just like an upload. Files restored from storage are also checked against the site's allowed file types.
v2.1.2July 2026

Important

  • If you synced ACF content while running 2.1.1, please update and spot-check non-media ACF fields on the destination. 2.1.1 reconnected ACF image fields to the destination media library, but treated every ACF field as a possible media field, so a relationship, number or date field whose value matched an attachment ID could be rewritten to point at an image. Remapping is now limited to genuine ACF image, gallery and file fields.

Sync accuracy

  • A skip import no longer modifies the items it skipped. Skipped pages could be moved to the top level, flattening a page tree, and their media and builder references could be rewritten.
  • Widget images, menus and page links survive a cross-site sync. Image, gallery, audio, video, navigation-menu and page-list widgets now reconnect to the destination own media, menus and pages instead of pointing back at the source site.
  • Menu items reconnect to their page in any import order. An item whose target page had not arrived yet used to become a hardcoded link to the source site and stay that way.
  • Menu theme-location assignments and single-sidebar widget files import correctly, imports no longer erase destination settings that are simply unset on the source, and builder component overrides are no longer wiped.

Workflows and batches

  • A failed run no longer reports success. It could previously show a green dialog, return HTTP 200 to a webhook, and exit 0 in the CLI.
  • Approvals are bound to the step they were granted for, so editing or reordering a workflow mid-approval can no longer apply that approval to a different step. Approval deadlines are enforced, and scheduled workflows no longer stack up a run every interval while one is still awaiting approval.
  • Runs scoped to selected items no longer pull everything on pull steps, Webhook and Shell steps can finally run, and network-level workflows can be edited.
  • Interrupted batch jobs no longer stay stuck on Running and block every later job, retry settings now behave as described, a mostly-failed job reports completed with errors, and schedules keep their cadence instead of drifting later on every late cron tick.

Reported by you

  • The Bricks Global Classes section no longer times out on large class lists, and Library file hashes are cached between page loads.
  • Storage settings no longer show the legacy brickssync-json folder from a stale option on multisite. The display now resolves storage through the same network and site precedence the sync engine uses.
  • Migrations: the permanent-delete bulk override can actually be enabled, through an explicit checkbox, the deletion preview is accurate for remote-scoped profiles, and remote pulls skip deletion propagation entirely.
  • Bundles and custom sources: bundle imports find their files again, a skip-conflicts import no longer overwrites existing components, and licence keys and API secrets are reliably excluded from custom-source exports.

Security

  • The editor Pull action no longer sends the application password when a remote redirects HTTPS to plain HTTP, matching the hardening already applied to the other push and pull paths.
  • Bundled ACF field groups can no longer overwrite an existing field group through a mismatched payload.

Quality

  • Two full independent code-review passes over the sync engine, the admin surface, workflow and batch orchestration, and every supporting subsystem. The automated suite grew from 583 to 632 tests.
v2.1.1July 2026

Added

  • An opt-in Include ACF Field Groups option, in the Library related-data dialog, the editor Push actions, and workflow steps, that bundles the ACF field group definitions your content depends on. On import they are added only when missing, so a push never overwrites the target site's existing ACF setup.

Fixed

  • ACF image, gallery, and repeater-image fields now keep their images when synced across sites. Their attachment IDs are remapped to the destination's media, the same way featured images already were, so pictures no longer arrive empty or pointing at the wrong file.
  • The Edit button on a workflow now jumps straight to the edit form and focuses it. It previously opened the form below a long list, so on pages with several workflows it looked like nothing happened.
v2.1.0July 2026

Added

  • Sync buttons in the post editor (block and classic). Push a post to a remote, pull it back with an automatic pre-pull backup, run a workflow scoped to just that post, or export it to storage, all without leaving the editor. A sync-status indicator shows whether the post is in sync, behind the target, or not there yet, and warns before overwriting a newer copy.
  • Bulk Push from the Posts list (row and bulk actions), a Gutenberg pre-publish panel, and single-item Pull by slug. Authors are preserved across sites, matched by login or email on the destination.
  • Migration Transforms (Config, then Migrations): reusable profiles that reshape content on import so differently-built sites can still sync. Rename or drop custom-field keys, merge terms from several taxonomies into one, remap attachment IDs inside galleries and fields, route one post type into another, remap relationship fields, and opt in to deletion propagation (trash by default, with a dry-run preview). Preview a profile against real files before running, define profiles network-wide, and manage them from WP-CLI.
  • Cross-site media portability. An Include Media Files option bundles each post's featured and inline images with the export. On import, featured images reconnect and inline image URLs are rewritten to the destination, so posts carry their images between sites in one pass. Fully compatible with older exports.
  • A single visibility switch for the whole editor UI: show as configured, administrators only (developer mode), or off. Safe for client sites, with a per-remote allow-editor-push-and-pull switch that is off by default. New in-plugin guides for Migrations and Editor Actions.

Security

  • A full security and reliability pass. Remote requests are validated against SSRF on every redirect, credentials are dropped if a remote downgrades from HTTPS to HTTP, and deletion propagation is capped so a misconfigured profile can never wipe a small site. Added network-admin capability checks, CSV formula-injection sanitising, storage path-traversal validation, and size-capped media downloads.
  • Cross-site imports now faithfully carry post hierarchy, term meta, and media, de-duplicated on a real path boundary with newer-wins compared in UTC. Paused batches re-queue their work instead of stalling.

Fixed

  • Item-scoped workflow runs (Library quick-run and the new editor Run-workflow action) now honour the selection at the step level instead of potentially running on everything.
  • The Preview Dependencies modal counts inline images in classic content correctly, and the export result reports how many media files were bundled. The remaining card accents render flush with rounded corners.

Changed

  • Global-styles storage writes are now atomic and domain-independent (portable URLs), matching the rest of the engine.
  • A clearer activation error when a licence is not valid for this product, explaining the usual cause and how to fix it. Admin notices, forms, and tables are themed to the plugin's design system, with accessibility improvements throughout.
  • Quality: the automated test suite now runs 571 tests and static analysis is enforced at PHPStan level 5, fixing 7 genuine defects along the way.
v2.0.1–v2.0.3June 2026

Fixed

  • Critical multisite fix: auto-sync no longer empties Bricks templates. Automatic sync is now strictly opt-in (manual by default), network defaults no longer override a site's own saved options, and imports write before deleting so a cron import can never cause silent data loss.
  • Launch-day fixes: subsite licence detection after network activation, network batch jobs running under cron, the Workflow and Bundle editors saving instead of downloading, the Pending Conflicts resolver, and per-post backup restore. Storage and activity timestamps now render in the site timezone.
  • Network remotes can be edited and deleted (case-preserving IDs), selective imports no longer leave portable-URL tokens in content, maintenance mode always exits, and the Library storage column detects exported files correctly.

Added

  • Seamless migration from BricksSync: updating in place carries your licence and activation over automatically, and the entire BricksSync configuration (storage location, file patterns, data folder, sync mode, excluded options, network config) is copied to its new home on first load. The legacy brickssync-json folder is detected automatically.
  • Portable, domain-independent storage URLs so configs move cleanly between environments.
v2.0June 2026

Added

  • Universal sync, posts, pages, menus, widgets, media, categories, tags, auto-discovered custom post types & taxonomies, and custom fields (ACF, Meta Box, ACPT); plus the full Bricks set (templates, components, settings, global styles) when Bricks is active.
  • Custom Source Builder: sync any plugin or data with no code (Settings → Data Sources).
  • Developer integration studio: export any source as a shippable integration (JSON config or a PHP registration snippet).
  • Sync engine: file-based export/import, authenticated site-to-site push/pull, remotes, groups, and multisite batch processing.
  • Workflows: multi-step runs, dry runs, approvals, notifications, per-step maintenance mode, and webhook triggers.
  • Safety: 7 conflict-resolution strategies, deep export with related data, versioning/rollback, audit trail, and activity log.
  • Modern site + network admin UI, first-run onboarding wizard, in-plugin Guides, WP-CLI, and a REST API. Remote credentials are encrypted at rest.

Fixed

  • Critical data-loss fix: imports no longer delete custom-field data missing from an incoming file, so a partial or stale export can no longer strip live page content. Page-builder structural data (Bricks, Elementor, Divi, WPBakery, Beaver Builder, Oxygen, Brizy) is always protected.
  • Network admin can again save, edit, and delete network-level remotes and workflows.
  • Onboarding wizard rebuilt so every step saves and reports honest progress.
  • Run history distinguishes dry runs, shows correct step counts, and appears in the activity feed and CSV export.
  • Uninstall now fully cleans up, including per-user settings.

Changed

  • File-based syncing is now first-class everywhere, workflows are optional.
  • Formerly BricksSync; now builder-agnostic and fully usable on any WordPress site, with Bricks features gracefully skipped when Bricks is absent.
1.4.8-beta

Fixed

  • Pushing a single component no longer silently pushes nothing.
  • Network remotes work everywhere they were previously ignored, Test Connection, workflow Run, push dropdowns, steps, dry runs, the remote picker, and batch jobs.
  • The “Getting Started” banner no longer shows on sites already configured at network level.
  • Uninstall fully removes network-level data and scheduled tasks.

Changed

  • Bricks Builder became optional, activate and use WPChangeSync without Bricks; a standalone top-level menu appears, and Bricks-only sections hide on non-Bricks sites.
1.4.6 / 1.4.7-alpha

Added

  • Selective push to remote and selective workflow runs, sync only the items you choose.
  • Scope-choice dialog to pick selected vs. all items before running a workflow.
  • Builder Panel to manage workflow-on-save from inside Bricks.
  • Bricks capability settings (SVG uploads, code execution, maintenance bypass) included in sync.

Fixed

  • Media imports reconnect to existing files instead of creating duplicates.
  • Custom fonts, CSS variables, and cross-site references sync far more reliably.
  • Fixed empty template/header/footer imports and preserved backslashes in code elements.
  • Incomplete workflows warn and block running until finished; large media pushes are more reliable on strict hosts.
1.4.0–1.4.5-alpha

Added

  • Workflow notifications (email/webhook) and configurable multi-step workflows.
  • Template versioning & rollback, and a conflict-resolution UI for imports.
  • Audit trail and compliance logging; maintenance-mode integration; template dependency detection.
  • Bundles, WordPress Widgets sync, and expanded Global Styles management.
  • Batch and scheduled sync tools, including network batch tabs and API endpoints.

Fixed

  • Remote pulls import template content correctly and reliably overwrite existing templates.
  • Editing a workflow updates it instead of creating a duplicate.

Changed

  • Minimum PHP raised to 8.0; simpler multisite UI and batch management.
1.3-alpha series

Added

  • Full localization support and a comprehensive in-app Guides system.
  • Integration status system with visibility toggles and a dashboard widget.
  • Site Role setting (receiver/source) for remote sync; expanded WP-CLI config.

Fixed

  • Pull mode, webhook, and cron stability improvements.

Changed

  • Optional debug logging; improved admin permission checks.

Removed

  • Legacy Parent/Child connection system.
1.2-alpha

Added

  • Components as a first-class sync type, with name-based identity for cross-site matching.
  • Component and template manifests for tracking and integrity.

Changed

  • Better overwrite and batch import controls.
1.0.0–1.1.1

Added

  • Official 1.0 release; better support for Bricks Components in settings export.

Fixed

  • Empty-slug template exports are skipped; auto-export respects inherited multisite sync mode.
0.8.0-alpha

Added

  • Full WordPress multisite and network-admin support.
  • Site-level overrides, group-based configuration, and a Sites & Effective Configuration overview.

Changed

  • Better multisite UI, accessibility, and security checks.
0.1.0–0.7.0

Added

  • Initial releases: manual Bricks settings and template export/import.
  • Configurable storage locations, including custom JSON paths outside the web root.
  • Automatic and scheduled sync modes; WP-CLI export/import; licensing; .htaccess protection for JSON storage.