1.1.0
- New: Planning Center group leaders now sync to CP Groups. Group Leader gets every leader's name. Group Leader Email gets the group's contact email, or the email of the first leader who has one. On CP Groups 1.2 or later, leaders are saved as Group Leaders rows instead, each with that leader's own email. The contact email is used only when no leader has one. If the leaders cannot be loaded, the leaders already stored are kept.
- Fixed: If Planning Center cannot return groups or tag groups, the groups sync now stops and records an error in the log, instead of treating that failure as an empty list and removing group types and tag filters. Events and sermons in the same run still sync.
- Fixed: Church Community Builder groups are no longer all marked full. Church Community Builder sends "false" as text, which was being read as yes.
- Fixed: Saving, disconnecting, and loading Church Community Builder credentials no longer fails on hosts that do not have the PHP sodium extension.
- Fixed: Syncs and background processes no longer start when someone opens a web address on the site. They run only from the schedule or from the Pull buttons on the settings screen.
- Improved: Corrections to the introduction, What's New, how-to and settings pages, the Groups Synchronization steps, and Data Mapping.
1.0.0
- Security: CCB API credentials are now encrypted at rest (libsodium with OpenSSL fallback, keyed from your site's WordPress salts). Existing plain-text credentials keep working and are re-encrypted on the next save.
- Security: The CCB subdomain is validated everywhere it is used — malformed values are rejected with a clear error instead of being built into API URLs.
- Security: OAuth callback tokens and all settings saved over the REST API are now sanitized per field, driven by the new settings schema.
- Security: Added missing permission checks to the PCO option-lookup REST endpoints (they now require an administrator, matching every other settings route).
- Security: Raised minimum versions of bundled HTTP libraries past known advisories (Guzzle 7.15.1+).
- New: Reset tool under Settings → Advanced (and
wp cp-sync reset) with five levels — clear a stuck sync queue, force a full re-import, delete imported content, remove the ChMS connection, or reset everything. Destructive levels require typed confirmation.
- New: Per-post sync lock — a "Prevent sync from updating this post" checkbox on every imported post's edit screen. Locked posts are never overwritten or removed by a sync, so manual customizations are preserved; unchecking resumes syncing on the next run.
- New: Sermon syncing from Planning Center Publishing to CP Sermons — episodes published to your Church Center library import as CP Sermons sermons with series, speakers, media URLs, and artwork. Includes a Sermons settings tab with filtering, and a Sync Sermons toggle on the Connect tab.
- New: Groups and Events sync can be enabled or disabled per ChMS with toggles on the Connect tab. When a required companion plugin (CP Groups or The Events Calendar) is not active, the toggle is disabled with an explanation, the corresponding settings tab is hidden, and scheduled syncs skip that feed.
- New: Optional "Delete all data on uninstall" toggle (Settings → Advanced). Off by default, so uninstalling the plugin keeps your data; turn it on to have WordPress permanently remove all CP Sync settings, the ChMS connection, sync state, and imported content when the plugin is deleted.
- Enhancement: The settings screen was rebuilt on the WordPress component library for a native wp-admin look and feel, dramatically smaller page weight, and reliable browser-tab URLs for each settings tab.
- Enhancement: Settings screens are now declared in PHP as a schema and rendered by a single form engine — new integrations and fields no longer require custom UI code.
- Enhancement: Sync filter conditions no longer crash when no comparison options are available, correctly reset their value when switching between comparison types, and use collision-proof identifiers.
- Bug Fix: Fixed a crash when reading a settings field from a group that had not been saved yet.
- Bug Fix: Fixed duplicate saves when switching the active ChMS.
- Bug Fix: Image-cache error messages were never translatable due to a placeholder text domain.
- Removed: The unfinished Ministry Platform settings UI has been removed while MP support is completed; PCO and CCB are unaffected.
- Developer: New fast unit-test suite (
composer test, 83 tests) and security-focused PHPCS gate (composer lint); composer verify runs both.
- Developer: The legacy secondary build system (wpackio) was removed —
npm run build:wp is now the only build.
0.3.1
- Bug Fix: Fixed incomplete venues created during initial import — venue creation now deferred to enrichment phase where full address data is available.
- Bug Fix: Fixed stale venue associations persisting when a location is removed in CCB.
- Enhancement: Two-phase enrichment strategy for CCB events — always enriches new events, then uses modified timestamps to detect changes on subsequent syncs.
- Enhancement: Eliminated duplicate API calls during CCB event re-enrichment (single `event_profile` call instead of two).
- Enhancement: Added session-based venue deduplication to prevent redundant updates when multiple events share a venue.
- Enhancement: Added shimmer loading skeleton to settings page while JS bundle loads.
- Documentation: Documented CCB event enrichment behavior, the new `cp_sync_{$type}_update_item_after` action hook, and updated venue/location guidance in the troubleshooting and TEC integration guides.
0.3.0
- New Feature: CCB event enrichment — automatically fetches full venue addresses and event images from the `event_profile` endpoint after initial import.
- Enhancement: CCB venue import now supports full location data (street address, city, state, zip).
- Enhancement: Custom XML parser preserves CCB API attributes for reliable event ID extraction.
- Enhancement: Graceful enrichment failure handling — errors don't block event import.
0.2.0
- Breaking Change: CCB now uses Basic Authentication (username/password) instead of OAuth. Existing users will need to reconnect with API credentials.
- New Feature: Added WP-CLI commands for CCB debugging (`wp cp-sync ccb test-connection`).
- New Feature: Added configurable date range for CCB event sync with multiple preset options.
- New Feature: Added option to remove events outside the configured date range.
0.1.7
- Enhancement: Added comprehensive logging to PCO registration event import process
- Enhancement: Improved debugging capabilities for troubleshooting import issues
- Enhancement: Added detailed logging for API responses, filtering, and event processing
- Bug Fix: Fixed OAuth redirect URL construction for admin pages
0.1.6
- Enhancement: to the CCB sync
- Enhancement: better image importing
- Enhancement: add security check to api endpoints
- Bug Fix: Update api endpoints
0.1.5
0.1.4
0.1.3