You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Implement an extensible notification system that alerts administrators when syndication events occur. This feature was partially implemented in the unreleased 2.1 branch and is being reimplemented with modern architecture patterns.
Background
The 2.1 branch contained a notification system (Syndication_Notifier class) that supported email and Slack notifications. This issue captures the requirements for a fresh implementation using service-oriented architecture with support for additional notification channels.
Requirements
Notification Events
The system should support notifications for the following events (hooks already exist in develop):
Extensibility requirement: The architecture must allow third-party developers to register additional notification channels (e.g., Microsoft Teams, Discord, PagerDuty, custom webhooks) without modifying core plugin code.
Configuration
Global settings (under Push Syndication → Settings):
Enable/disable each notification channel independently
Overview
Implement an extensible notification system that alerts administrators when syndication events occur. This feature was partially implemented in the unreleased 2.1 branch and is being reimplemented with modern architecture patterns.
Background
The 2.1 branch contained a notification system (
Syndication_Notifierclass) that supported email and Slack notifications. This issue captures the requirements for a fresh implementation using service-oriented architecture with support for additional notification channels.Requirements
Notification Events
The system should support notifications for the following events (hooks already exist in develop):
syn_post_push_new_post$result, $post_ID, $site, $transport_type, $client, $infosyn_post_push_edit_post$result, $post_ID, $site, $transport_type, $client, $infosyn_post_push_delete_post$result, $ext_ID, $post_ID, $site_ID, $transport_type, $clientsyn_post_pull_new_post$result, $post, $site, $transport_type, $clientsyn_post_pull_edit_post$result, $post, $site, $transport_type, $clientNotification Channels
Built-in channels:
wp_mail()Extensibility requirement: The architecture must allow third-party developers to register additional notification channels (e.g., Microsoft Teams, Discord, PagerDuty, custom webhooks) without modifying core plugin code.
Configuration
Global settings (under Push Syndication → Settings):
Notification Content
Each notification should include:
Architecture
Suggested service-oriented design:
Value Objects:
NotificationEvent: Immutable object containing event type, post data, endpoint data, result, timestampNotificationResult: Success/failure with optional error messageExtensibility hook:
Acceptance Criteria
syn_notification_channelsfilter allows registering custom channelsOut of Scope
References
includes/class-syndication-notifier.phpincludes/admin/class-settings-screen.php