Changelog

All notable changes to the BricksSync plugin are documented in this file.

1.4.1-alpha

Added

  • Network-Controlled Subsite Tab Visibility: Network admins can now control which tabs subsites see via Global Config and Group Config “Subsite Features” section. Dashboard and License are always shown; Library, Workflows, Config, Activity, Guides, and Bundles are toggleable. Settings cascade from global → group → site.
  • Custom Tables Sync: New sync handler for plugins that store data in custom database tables instead of wp_options. Enables full sync support for ACPT and similar plugins.
  • Auto-Export for All Integrations: Configure auto-export per integration type (templates, components, global classes, colors, typography). Previously only templates had auto-export.
  • Simplified Multisite UI: Network admin now has 7 main tabs with logical sub-sections (down from 14). Subsite UI shows only relevant features.
  • Demo Data CLI: New wp brickssync demo seed and wp brickssync demo remove commands for testing.

Fixed

  • ACPT Integration: ACPT sync now exports and imports all configuration data from its 27+ custom tables. Previously only version numbers were synced.
  • Non-Latin Slug Preservation: Korean, CJK, and other non-Latin slugs are no longer percent-encoded during sync. Characters like 한국어 now transfer correctly.
  • Library Sections on Subsites: Library content sections now load correctly on multisite subsites.
  • Templates CLI Import: The --overwrite flag (which was always on) has been replaced with --conflict (skip/overwrite) for proper control.
  • Integration Visibility: Disabled integrations (alpha/beta/untested) now properly hidden from Library when toggled off in settings.
  • Group Push from Workflows: Group push action now works correctly when configured via the Workflows tab.

Changed

  • Network Admin Structure: Consolidated tabs for better UX — Workflows now includes Running Jobs, Schedules, and Batch Settings as sub-sections; Sites tab includes Overview, Groups, and Global Config.
  • Subsite Tab Defaults: Tab visibility now controlled by network admin. Defaults: Dashboard, Library, Activity, Guides, License on; Workflows, Config, Bundles off.

1.4.0-alpha

Added

  • Workflow Notifications: Get notified when workflows need attention via email or webhook.
  • Email notifications sent to admin email using wp_mail().
  • Webhook support for Slack, Discord, Zapier, n8n, and any HTTP endpoint.
  • Auto-detection and rich formatting for Slack (attachments with buttons) and Discord (embeds).
  • Configurable per-workflow: notify on approval required, completion, or failure.
  • Notification settings UI in the Workflows tab.
  • Extensible via hooks: brickssync_notification_payload, brickssync_notification_recipients.
  • New action hooks: brickssync_workflow_completed, brickssync_workflow_failed.
  • Template Versioning & Rollback: Automatically save version history for templates with easy rollback.
  • Auto-save versions on template edit, before import overwrites, and on export.
  • Version history UI in Templates tab with restore functionality.
  • “Save Version Now” manual button for on-demand snapshots.
  • Configurable max versions per template (1-50).
  • Fully optional via settings flag (disable for Git workflows).
  • WP-CLI commands: versions, save-version, restore, clear-versions.
  • Conflict Resolution UI: Visual conflict detection when importing templates that already exist.
  • Side-by-side comparison showing element counts and modification dates.
  • Plain-language summaries (“Import has 3 more elements”).
  • Keep/Replace per-template decisions with safe defaults.
  • “Keep All” / “Replace All” bulk actions.
  • Visual comparison: open current in Bricks, preview import as temp template.
  • Auto-cleanup of preview templates after 1 hour.
  • Maintenance Mode Integration: Automatically enable Bricks maintenance mode during sync operations.
  • Per-workflow-step option to enable maintenance mode.
  • Smart state tracking (won’t disable if already enabled).
  • Safety timeout with auto-disable (configurable, default 30 min).
  • Uses Bricks’ built-in maintenance page settings.
  • Off by default – opt-in per workflow step.
  • Template Dependencies: Detect media, plugins, and fonts used in templates.
  • Plugin detection: warns when importing templates using elements from missing plugins.
  • Media detection: identifies images/files used in templates with file sizes.
  • Font detection: lists Google Fonts, Adobe Fonts, and custom fonts used.
  • Pre-import warning modal for missing plugins with “Import Anyway” option.
  • Supports Bricks Extras, Bricksforge, Bricksable, and other popular add-ons.
  • Audit Trail & Compliance: Comprehensive audit logging for enterprise accountability.
  • Logs all sync operations, workflow runs, and configuration changes.
  • Records actor (user/system/API), timestamp, target, context, and result.
  • Filterable Audit Log tab with search, date range, user, and status filters.
  • Export to CSV or JSON for compliance audits (SOC2, GDPR).
  • Configurable retention period (default: 1 year).
  • Statistics dashboard showing activity by category and status.
  • Performance & Security Improvements: Code audit fixes for production readiness.
  • Integration detection caching: 1-hour transient cache with auto-invalidation on plugin/theme changes.
  • REST API rate limiting: 60 requests/minute per user with proper 429 responses.
  • Health check endpoints: /brickssync/v1/health (public) and /health/detailed (authenticated).
  • Consolidated storage path functions for consistent multisite support.
  • Can disable rate limiting with define('BRICKSSYNC_DISABLE_RATE_LIMIT', true);.
  • Configurable Workflow Steps: Replace fixed 3-step workflows with dynamic 1-100 step support.
  • Add/remove steps dynamically in the workflow editor.
  • Approval gates: require manual approval before critical steps.
  • Webhook steps: trigger GitHub Actions, Netlify, Slack, or any HTTP endpoint.
  • Shell command steps: run git, npm, or custom scripts (with security sandbox).
  • Workflow Runs dashboard: monitor execution, approve pending steps, view progress.
  • Variable interpolation: use {{workflow_id}}, {{date}}, {https://brickssync.com} in webhooks.
  • REST API for workflow runs, approvals, and execution.
  • 4 new guides covering dynamic steps, approval gates, runs dashboard, and webhooks.
  • Selective Global CSS Sync: Include global styles when syncing templates for portable, self-contained exports.
  • Automatically detects global CSS classes, colors, and typography used by templates.
  • “Include global styles” checkbox in Templates tab for export/import.
  • Smart merge with conflict detection (skip, overwrite, rename).
  • REST API endpoints for style analysis and merging.
  • 4 new guides covering global styles sync.
  • Bundles: Group templates and components together for selective sync operations.
  • Create, edit, and delete bundles via the new Bundles tab.
  • Items can belong to multiple bundles without duplication.
  • “Load from bundle” dropdown in workflow steps to pre-fill integration checkboxes.
  • REST API endpoints for bundle CRUD operations.
  • 4 new guides covering bundle usage.
  • Global Styles Section: Complete design system management in Library with 10 tabs in 3 groups.
  • Styles Group: Classes, Colors, Typography, Custom CSS, Custom Code
  • Presets Group: Element Defaults, Theme Styles
  • Site Config Group: Breakpoints, Custom Fonts, Icon Fonts
  • Grouped sub-navigation for easy access to all design system components.
  • Site ⇄ Storage comparison view showing sync status per item.
  • Selective export/import for array-based sections (classes, colors, typography, theme styles, fonts, icons).
  • Full export/import for single-option sections (element defaults, breakpoints, CSS, code).
  • Conflict resolution options: skip existing, overwrite, or rename imported.
  • All storage consolidated under global-styles/ directory.
  • WordPress Widgets Section (alpha): New Library section for syncing sidebar widgets.
  • Export widget configurations from sidebars.
  • Import to another site with conflict resolution.
  • Useful for staging → production deployments.
  • Batch/Throttle Sync: Complete batch processing system for large-scale sync operations.
  • Site-Level Batching: Process many subsites or remotes in configurable batches via WP Cron.
  • Element-Level Batching: Handle large template libraries (50+ items) without timeouts.
  • Scheduled Batch Jobs: Automate recurring syncs on hourly, daily, or weekly schedules.
  • Remote Group Batching: Push to multiple external WordPress sites in a single batch operation.
  • Progress Monitoring: Real-time progress bars, elapsed time, and estimated remaining time.
  • Pause/Resume/Cancel: Full control over running batch jobs.
  • Automatic Retries: Configurable retry logic for failed sites with exponential backoff.
  • Failure Threshold: Automatically stop batch if too many failures occur.
  • New Network Admin Tabs:
  • Batch Jobs: Monitor running and completed batch sync operations.
  • Schedules: Create and manage automated batch sync schedules.
  • Batch Settings: Configure batch sizes, delays, timeouts, and retry behavior.
  • New REST API Endpoints:
  • GET /bundles – List all bundles
  • GET /bundles/{slug} – Get single bundle
  • POST /bundles – Create bundle
  • PUT /bundles/{slug} – Update bundle
  • DELETE /bundles/{slug} – Delete bundle
  • GET /bundles/{slug}/contents – Get bundle contents
  • POST /bundles/{slug}/duplicate – Duplicate bundle
  • POST /bundles/{slug}/add – Add items to bundle
  • POST /bundles/{slug}/remove – Remove items from bundle
  • GET /bundles/available-items – Get available templates/components
  • GET /bundles/stats – Get bundle statistics
  • POST /batch/start – Start a new batch job
  • GET /batch/status/{job_id} – Get job status and progress
  • POST /batch/pause/{job_id} – Pause a running job
  • POST /batch/resume/{job_id} – Resume a paused job
  • POST /batch/cancel/{job_id} – Cancel a job
  • POST /batch/retry/{job_id} – Retry failed targets
  • GET /batch/jobs – List all batch jobs
  • DELETE /batch/jobs/{job_id} – Delete a job
  • GET/POST /batch/settings – Manage batch settings
  • POST /batch/remote-group/start – Start remote group batch
  • GET /batch/remote-groups – List remote groups
  • GET/POST/DELETE /batch/schedules – Manage scheduled jobs
  • POST /batch/schedules/{id}/toggle – Enable/disable schedule
  • POST /batch/schedules/{id}/run-now – Trigger schedule immediately
  • POST /batch/elements/start – Start element batch job
  • GET /batch/elements/status/{job_id} – Get element job status
  • POST /batch/elements/check – Check if batching will be used
  • Comprehensive Documentation: 30+ new guides covering batch processing, bundles, global styles, design system, and workflows:
  • Batch Processing Overview
  • Running Batch Jobs
  • Configuring Batch Settings
  • Scheduled Batch Jobs
  • Batch Sync to Remote Groups
  • Element-Level Batching
  • Batch Processing API Reference
  • Batch Processing Troubleshooting
  • Bundles Overview
  • Creating and Managing Bundles
  • Using Bundles in Workflows
  • Bundles REST API
  • Global Styles Sync Overview
  • Exporting with Global Styles
  • Importing with Global Styles
  • Global Styles API
  • Dynamic Workflow Steps
  • Workflow Approval Gates
  • Workflow Runs Dashboard
  • Webhook Steps in Workflows
  • Global Styles Overview
  • Syncing CSS Classes
  • Syncing Color Palette
  • Syncing Typography
  • Syncing Custom CSS
  • Syncing Custom Code (JavaScript)
  • Syncing Element Defaults
  • Syncing Theme Styles
  • Syncing Breakpoints
  • Syncing Custom Fonts
  • New Guide Categories: “Batch Processing” and “Design System” categories added to Guides section.

Changed

  • Network Workflows with multiple targets now show “Run Batch” button with confirmation dialog.
  • Batch settings UI includes estimation calculator for planning sync operations.
  • Element batching automatically activates when syncing more than 50 items (configurable).
  • PHP minimum version updated to 8.0 (was 7.4) to support typed properties and modern features.

Fixed

  • Uninstall cleanup: Plugin uninstall now properly removes all data.
  • Cleans all 40+ plugin options (was only cleaning 6).
  • Drops the brickssync_audit_log database table.
  • Clears all scheduled cron events.
  • Removes all transients including dynamically-named ones.
  • Proper multisite support with per-site and network-level cleanup.

1.3.2-alpha

Added

  • Site Role setting in Config > General to control whether a site can receive remote pulls (Child/Receiver) or is protected from overwrites (Parent/Source Only).

Fixed

  • Remote push/pull workflows now correctly sync all integrations including media.
  • Remote connection “Last used” date now updates properly.
  • Various UI fixes for transfers and backups.

Changed

  • Debug logging is now optional (enable in Config > Debug & Logging).

Removed

  • Legacy Parent/Child connection system has been fully removed and replaced by the new Remotes system.

1.3.1-alpha

Fixed

  • Config > Storage: saving now keeps you on the Storage section (no redirect to General).
  • Storage status checker now supports new UI storage location values (wp-content/uploads/theme/custom) while remaining compatible with legacy values.

1.3-alpha

Added

  • Full Localization Support: Plugin is now fully translatable using WordPress standard i18n methods.
  • Added languages/ directory with .pot template file
  • Included Dutch (nl_NL) translation as example
  • Added load_textdomain() for automatic translation loading
  • All UI strings wrapped in translation functions
  • Integration Status System: Integrations now have status levels (stable/beta/alpha/untested) to indicate maturity.
  • Stable: Templates, Components, Bricks Settings (always visible)
  • Alpha: WordPress content types (Media, Pages, Posts, Menus, Categories, Tags)
  • Untested: Third-party plugins (CSS frameworks, custom fields, Bricks plugins, Gutenberg)
  • Experimental Integrations Toggles: Config > General now has toggles to show/hide beta, alpha, and untested integrations.
  • Integrations Dashboard Widget: New widget on dashboard showing integration counts by status with quick access to settings.
  • Dynamic Integration Examples: Config page examples auto-update based on actual integration status values.
  • Library Menu Organization: Integrations grouped by category with headers and indented items, sorted by order field.
  • WP-CLI configuration management:
  • wp brickssync config get/set [--network]
  • wp brickssync config group get/set
  • wp brickssync config site get [--effective]
  • wp brickssync config site set [--validate-path]
  • wp brickssync config set-file --file=... [--network] [--validate-path]
  • System Status pane moved to Debug & Logging (single-site and network admin views).
  • Comprehensive in-app Guides system with 22 guides covering all use cases.

Changed

  • Improved permission checks for admin actions.
  • Debug log viewer now streams efficiently for large log files.

Fixed

  • Various bug fixes for pull mode, webhook handlers, and cron jobs.
  • WP-CLI robustness improvements.

1.2-alpha

Added

  • Components tab as a first-class entity with bulk, single, and batch import/export.
  • Name-based component identity (slug from label) to avoid cross-site ID collisions.
  • components-manifest.json (slug, label, category, version, hash) for fast listing and integrity checks.
  • templates-manifest.json at storage root (slug/title/type/status/id/hash).

Changed

  • Templates and Components tabs: overwrite toggle for bulk/single imports; batch import selector.
  • Direct transfers: include Components and report detailed counts (imported/updated/skipped).

Multisite

  • Tabs respect effective storage path on subsites; behavior unchanged for network admin.

1.1.1

  • Auto-export now respects global/group/site sync mode settings in multisite. Subsites inherit sync mode if not set locally.
  • Fixed require_once path for effective config resolution on multisite.
  • Fully tested with Bricks 2.0.1.

1.1.0

  • Skips template export if slug is empty.
  • Added full support for Bricks Components in settings export. Global CSS is already included in Bricks Settings.
  • Documentation and code cleanup.
  • Thoroughly tested with Bricks 2.0-rc2.

1.0.0

Major Changes

  • Official 1.0 release!
  • Compatibility fix for get_plugin_data() on older WordPress versions.
  • Textarea fields (like excluded options) now preserve line breaks when saving.
  • General documentation and version bump.

0.8.0-alpha

Added

  • Multisite/Network Admin Support:
  • BricksSync now fully supports WordPress Multisite installations. A dedicated Network Admin interface allows super admins to manage global, group, and per-site configuration for all subsites from a single dashboard.
  • New “Sites & Effective Configuration” tab displays all subsites with their effective (inherited/overridden) configuration in a unified table.
  • Site-specific overrides can be set and visualized for any subsite. Overrides are clearly indicated with a vertical badge at the start of each row.
  • Reset Button: Instantly remove site-specific overrides and revert to inherited configuration. The UI updates immediately after reset.
  • Group configuration: Manage shared settings for groups of sites, with inheritance logic for network > group > site.

Improved

  • UI/UX Enhancements:
  • Redesigned multisite tabs for clarity and consistency with single-site UI.
  • Override status is visually prominent and easy to identify.
  • Horizontal scrolling for large configuration tables.
  • All admin tabs are now more accessible and visually unified.
  • Security:
  • Nonce verification and input sanitization for all multisite admin actions.

Compatibility

  • Single Site:
  • All multisite features are isolated—single site installs remain unaffected.
  • WP Cron & WP CLI:
  • Cron jobs and WP CLI commands work on both single-site and multisite. For multisite, use --url= with WP CLI to target subsites. No network-wide CLI yet.

Documentation

  • Added detailed documentation for multisite/network admin features to all docs and README.

0.7.7-beta

Fixed

  • WP CLI functionality was fixed and expanded while at it.

0.7.6-beta

Fixed

  • A path error inside the template import function.

0.7.5-beta

Fixed

  • Another Error inside the licensing tab.

0.7.4-beta

Fixed

  • Error inside the licensing tab.

0.7.3-beta

Added

  • Expanded guides for Apache, Nginx, and lighttpd security in documentation.
  • Added “Plugin Updates” section to documentation.
  • Option to disable licensing checks via constant.
  • General documentation and code cleanup.

Changed

  • Unified and modernized the admin UI for all plugin tabs for a consistent user experience.
  • Improved error handling and validation for storage path and licensing.

Fixed

  • Syntax and layout issues in the configuration and debug tabs.
  • Removal of duplicate or legacy UI remnants in all admin tabs.

0.7.2

Added

  • Automatic .htaccess creation to block direct access to JSON files on Apache.
  • New recommendations for advanced server security and storing JSON outside web root.

0.7.1

Added

  • Debug tab with real-time log viewer, log clearing, and logging toggle.
  • Improved admin feedback and error handling.

0.7.0

Added

  • Selective automation for settings and template sync.
  • More granular configuration for file naming, subdirectories, and exclusion options.
  • Improved WP-CLI integration for automation and advanced workflows.
  • SureCart-based licensing system with activation and deactivation UI.
  • Option to disable licensing checks via constant.
  • Improved cron support for scheduled sync and automation.

0.6.0

Added

  • Support for custom JSON storage paths outside web root.

Changed

  • Improved error handling for unwritable directories.

0.5.0

Added

  • WP-CLI support for export/import commands.

Changed

  • Improved status messages and admin feedback.
  • Added troubleshooting section to documentation.

0.4.0

Added

  • Automatic and scheduled sync modes (manual, import-only, export-only, full sync).
  • Option to exclude specific settings from export.

0.3.0

Added

  • Support for exporting/importing Bricks templates (individual/all).
  • Improved file naming options for settings and templates.
  • Tabbed interface for Settings and Templates.

0.2.0

Added

  • Ability to configure storage location (Child Theme, Uploads, Custom Path).
  • Improved admin interface with configuration and licensing tabs.

0.1.0

Added

  • Initial release: Basic plugin structure with admin interface and tab navigation.
  • Manual export/import of Bricks Builder global settings to/from JSON.
  • Basic admin tabs for configuration and settings.