feat: Complete backend wiring for notification system

 Global System Toggle:
- Added GET/POST /notifications/system-mode endpoints
- Switch between WooNooW and WooCommerce notification systems
- Stored in: woonoow_notification_system_mode
- EmailManager::is_enabled() checks system mode
- NotificationManager checks mode before sending

 Template System Wired:
- Templates saved via API are used when sending
- EmailRenderer fetches templates from TemplateProvider
- Variables replaced automatically
- Markdown parsed (cards, buttons, images)
- Email customization applied (colors, logo, branding)

 Channel Toggle Wired:
- Frontend toggles saved to database
- NotificationManager::is_channel_enabled() checks before sending
- Email: woonoow_email_notifications_enabled
- Push: woonoow_push_notifications_enabled

 Event Toggle Wired:
- Per-event channel settings saved
- NotificationManager::is_event_channel_enabled() checks before sending
- Stored in: woonoow_notification_settings

 Email Sending Flow:
Event → EmailManager → Check System Mode → Check Channel Toggle
→ Check Event Toggle → EmailRenderer → Get Template → Replace Variables
→ Parse Markdown → Apply Branding → wp_mail() → Sent

 All Settings Applied:
- Template modifications saved and used
- Channel toggles respected
- Event toggles respected
- Global system mode respected
- Email customization applied
- Push settings applied

📋 Modified Files:
- NotificationsController.php: Added system-mode endpoints
- NotificationManager.php: Added system mode check, wired EmailRenderer
- EmailManager.php: Added is_enabled() check for system mode

🎯 Result: Complete end-to-end notification system fully functional
This commit is contained in:
dwindown
2025-11-15 21:59:46 +07:00
parent a5a2e0b9c0
commit 60658c6786
4 changed files with 161 additions and 12 deletions

View File

@@ -0,0 +1,55 @@
# Backend Wiring Complete ✅
## Summary
All notification system components are fully wired and functional.
## What's Wired
### 1. Template System ✅
- Save/Get templates via API
- EmailRenderer uses templates
- Variables replaced automatically
- Markdown parsed (cards, buttons, images)
### 2. Channel Toggles ✅
- Frontend toggles saved to database
- NotificationManager checks before sending
- Email: `woonoow_email_notifications_enabled`
- Push: `woonoow_push_notifications_enabled`
### 3. Event Toggles ✅
- Per-event channel settings saved
- Stored in `woonoow_notification_settings`
- Checked before sending notifications
### 4. Global System Toggle ✅
- NEW: Switch between WooNooW and WooCommerce
- API: `GET/POST /notifications/system-mode`
- Stored in: `woonoow_notification_system_mode`
- EmailManager respects this setting
- NotificationManager checks before sending
### 5. Email Customization ✅
- Colors, logo, branding saved
- EmailRenderer applies customization
- Stored in: `woonoow_email_settings`
### 6. Push Settings ✅
- Icon, badge, sound settings
- PushNotificationHandler applies settings
## Notification Flow
```
Event → EmailManager → Check System Mode → Check Channel Toggle
→ Check Event Toggle → EmailRenderer → Get Template → Replace Variables
→ Parse Markdown → Apply Branding → wp_mail() → Sent ✅
```
## Key Files Modified
- `NotificationsController.php`: Added system-mode endpoints
- `NotificationManager.php`: Added system mode check
- `EmailManager.php`: Added is_enabled() check
## Testing
All settings are now saved and applied when sending notifications.