New Feature: Added per-status color picker – choose a custom embed color for each notification directly from the settings page, with the existing defaults pre-selected for backwards compatibility
Enhancement: Test button now sends the selected color and status label – the test embed reflects the actual color configured for that row and shows the status name in the title (e.g. “Completed Test Notification”)
2.0.0
New Feature: Added WooCommerce Subscriptions support – notifications for Active, On Hold, Cancelled, Expired, Pending Cancellation, Renewal Payment Complete, and Renewal Payment Failed subscription events
New Feature: Added Discord notification log with enable/disable toggle, configurable auto-purge retention period (default 7 days), manual purge option, and daily cron cleanup
New Feature: Added low stock alert notifications – sends a dedicated embed to Discord when a product hits its WooCommerce low stock threshold
New Feature: Added new customer notifications – fires on a customer’s first-ever order, covering both registered and guest customers
New Feature: Added @mention support per status – specify @here, @everyone, or a Discord role ID to ping your team for critical events
New Feature: Added minimum order value filter – only send notifications for orders above a configured threshold
New Feature: Added test notification button per webhook – sends a live test embed to Discord directly from the settings page
New Feature: Added status-specific embed colors – green for completed/active/renewals, amber for pending/on-hold, red for failed/cancelled/expired, grey for refunded
New Feature: Added customer details to order and subscription embeds – customer name, email, and country with flag emoji
New Feature: Added ppsndw_woo_discord_payload filter to allow customisation of the data sent to Discord
New Feature: Added ppsndw_woo_discord_low_stock_payload filter for low stock notification customisation
New Feature: Added uninstall.php – removes log table, all plugin options, and scheduled cron events when the plugin is deleted (opt-in via settings)
Enhancement: Redesigned settings page with tabbed layout (Notifications and Logs), compact single-row-per-status table, and section headings
Enhancement: Moved settings page under the WooCommerce menu
Enhancement: Added Discord embed field truncation to respect API limits (title 256 chars, field values 1024 chars), preventing silent rejections with long product lists
Enhancement: Added response code capture – the HTTP status returned by Discord is now logged alongside each notification entry
Enhancement: Added edit_url storage in the log table at write time, ensuring HPOS-compatible order links in the log view without extra queries
Enhancement: Added load_plugin_textdomain() so translation files in /languages are properly loaded
Enhancement: Updated Tested Up To for WordPress 6.8 and WooCommerce 9.4
Security: Escaped all dynamic output in the settings page with esc_html(), esc_attr(), and wp_kses_post()
Security: Sanitize webhook URLs with esc_url_raw() instead of sanitize_text_field()
Security: Replaced date() with gmdate() for timezone-safe timestamp generation
Security: Added defined(‘ABSPATH’) || exit guard to all PHP include files to prevent direct file access
Enhancement: Declared WooCommerce High-Performance Order Storage (HPOS) compatibility
Enhancement: Replaced new WC_Order() with wc_get_order() for WooCommerce HPOS compatibility
Enhancement: Order edit URL now uses the WooCommerce native method compatible with HPOS
Enhancement: Fixed country flag emoji generation to use pure PHP UTF-8 encoding, removing the mbstring extension requirement
Bug Fix: Cancelled order status settings were incorrectly mapped to refunded option IDs, preventing cancelled notifications from working
Bug Fix: Fixed new customer notification hook – switched from woocommerce_checkout_order_created to woocommerce_new_order to cover admin-created and REST API orders
1.0.1
Enhancement: Updated Tested Up To for WordPress core and WooCommerce