File: settings-page.php
- When not configured: displays a blue-bordered onboarding banner with a 4-step setup guide
- When configured: displays a green success banner with "Plugin is configured and notifications are active"
- Test send button is disabled until configuration is complete
File: logs-page.php
- Added wwoa_format_payload() helper that pretty-prints JSON with
JSON_PRETTY_PRINT - Both request and response payloads now display indented, readable JSON in the expandable details rows
- Non-JSON payloads pass through unchanged; empty payloads show "—"
File: order-meta-box.php
- Shows a color-coded status card at the top of the meta box:
- ✅ Green for "sent" with timestamp
- ❌ Red for "failed" with timestamp + error message
- ⏳ Yellow for "pending"
- History increased from 3 to 5 entries
- Manual resend button is preserved below the status card
File: class-admin-notices.php
- Upgraded from warning to error-level notice
- Lists exactly which config items are missing (endpoint, token, recipients)
- States: "Notifications are currently inactive" and "Order alerts will NOT be sent"
Files: logs-page.php, class-logger.php
- Added "Trigger" dropdown filter (Checkout / Status Change / Manual)
- Added "Recipient" text input filter (LIKE search for partial matches)
- Both filters applied in get_logs() and get_log_count() queries
- Pagination preserves all filter values
File: class-generic-whatsapp-provider.php
- Explicit timeout detection: checks
http_request_failedcode + "timed out" / "cURL error 28" in message - Returns human-readable timeout message: "Request timed out after 15 seconds..."
- All responses now include
error_codefield (timeout,http_429,http_500, etc.) - Added
detailkey parsing for Django-style API error responses
File: class-hooks.php — already implemented at line 41
File: settings-page.php
- When configured and Action Scheduler is present, shows "View pending jobs →" link in the status banner
- Links directly to
?page=action-scheduler&s=wwoa&status=pending
File: admin.css
- Onboarding banner styling (gradient background, step list)
- Active status banner with green theme
- Last-status indicator cards in meta box (sent/failed/pending)
- Improved payload
<pre>formatting (monospace font, better spacing)
- Settings page — verify onboarding banner shows when API is not configured
- Settings page — configure API, verify green active banner appears with AS link
- Admin notices — verify error-level notice shows with specific missing items
- Logs page — filter by trigger source and recipient, verify results
- Logs page — expand a log row, verify pretty-printed JSON payloads
- Order edit — verify last-status card at top of WhatsApp meta box
- Test send — verify disabled button when not configured
- Test send — verify timeout produces human-readable error