Skip to content

v0.3.1 - CCB Event Enrichment

Choose a tag to compare

@tannerm tannerm released this 04 May 18:09
· 130 commits to master since this release
8e1579d

What's New in v0.3.1

CCB events now import with full venue addresses and event images, fetched automatically from the CCB event_profile endpoint after each event syncs. This release ships the original 0.3.0 enrichment feature plus the 0.3.1 fixes that hardened it for production use.

✨ New Features

  • CCB Event Enrichment — Events automatically pick up full venue addresses (street, city, state, zip) and event images from the event_profile endpoint after the initial calendar import
  • Custom XML Parser — CCB API attributes are now preserved through parsing, enabling reliable event ID extraction across both public_calendar_listing and event_profile endpoints

🔧 Improvements

  • Two-Phase Enrichment Strategy — New events always enrich on first import; subsequent syncs use CCB's modified timestamp to skip events that haven't changed
  • Single API Call Re-enrichment — Eliminated duplicate event_profile calls during change detection (one call now serves both check and enrichment)
  • Session-Based Venue Deduplication — Multiple events sharing a venue no longer trigger redundant venue updates within a sync run
  • Loading Skeleton on Settings Page — Shimmer placeholder displays while the JS bundle loads, replacing the previous blank page
  • Graceful Enrichment Failures — Errors during enrichment are logged but don't block event import

🐛 Bug Fixes

  • Incomplete Venues Fixed — Venue creation is now deferred to the enrichment phase, eliminating venues created with only a name and no address
  • Stale Venue Associations Cleared — Removing a location in CCB now properly clears the corresponding venue association in WordPress

📚 Documentation

  • Documented CCB event enrichment behavior and the recurring-event ID limitation
  • Added the new cp_sync_{$type}_update_item_after action hook to the developer guide
  • Updated venue/location guidance in the troubleshooting and TEC integration guides

🛠️ Technical Details

  • Recurring event occurrences from public_calendar_listing lack a numeric event ID and cannot be enriched — they import with venue name only. Master events with numeric IDs enrich normally.
  • Enrichment state is tracked via _chms_enriched_at and _chms_modified post meta.
  • A new generic action hook cp_sync_{$type}_update_item_after fires after every item update (e.g. cp_sync_events_update_item_after), enabling type-specific post-processing for custom integrations.