{"id":135617,"date":"2021-01-29T07:22:33","date_gmt":"2021-01-29T07:22:33","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/discord-notifications-for-woocommerce\/"},"modified":"2026-04-13T11:01:13","modified_gmt":"2026-04-13T11:01:13","slug":"wc-discord-notifications","status":"publish","type":"plugin","link":"https:\/\/sk.wordpress.org\/plugins\/wc-discord-notifications\/","author":13882431,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"2.0.0","stable_tag":"2.0.0","tested":"6.8.5","requires":"5.4","requires_php":"7.1","requires_plugins":null,"header_name":"Notifications on Discord for Woocommerce","header_author":"Pacific Plugins","header_description":"Send notifications of new orders and status changes of Woocommerce orders directly to a Discord channel.","assets_banners_color":"6e768a","last_updated":"2026-04-13 11:01:13","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/pacificplugins.com\/","rating":5,"author_block_rating":0,"active_installs":200,"downloads":5623,"num_ratings":3,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"Jarryd Long","date":"2021-01-29 07:22:31"},"1.0.1":{"tag":"1.0.1","author":"Jarryd Long","date":"2026-04-13 10:57:49"},"2.0.0":{"tag":"2.0.0","author":"Jarryd Long","date":"2026-04-13 11:01:13"}},"upgrade_notice":{"2.0.0":"<p>Major update. Adds WooCommerce Subscriptions support, notification logging, low stock alerts, new customer notifications, @mention support, status embed colours, customer details, a test button per webhook, and a redesigned settings page. Fully backwards compatible - no action required on upgrade.<\/p>"},"ratings":{"1":0,"2":0,"3":0,"4":0,"5":3},"assets_icons":{"icon-256x256.png":{"filename":"icon-256x256.png","revision":2465419,"resolution":"256x256","location":"assets","locale":""}},"assets_banners":{"banner-772x250.png":{"filename":"banner-772x250.png","revision":2465419,"resolution":"772x250","location":"assets","locale":""}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0","1.0.1","2.0.0"],"block_files":[],"assets_screenshots":{"screenshot-1.PNG":{"filename":"screenshot-1.PNG","revision":3505078,"resolution":"1","location":"assets","locale":""},"screenshot-2.PNG":{"filename":"screenshot-2.PNG","revision":3505078,"resolution":"2","location":"assets","locale":""},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3505078,"resolution":"3","location":"assets","locale":""}},"screenshots":{"1":"Notifications settings tab - one row per status with enable toggle, webhook URL, test button, and mention field","2":"Logs tab - filterable notification history with response codes","3":"Example of a rich Discord embed notification in a Discord channel"},"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[23972,282,4906,16281,286],"plugin_category":[45],"plugin_contributors":[77750],"plugin_business_model":[],"class_list":["post-135617","plugin","type-plugin","status-publish","hentry","plugin_tags-discord","plugin_tags-ecommerce","plugin_tags-notifications","plugin_tags-orders","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_contributors-jarryd-long","plugin_committers-jarryd-long"],"banners":{"banner":"https:\/\/ps.w.org\/wc-discord-notifications\/assets\/banner-772x250.png?rev=2465419","banner_2x":false,"banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/wc-discord-notifications\/assets\/icon-256x256.png?rev=2465419","icon_2x":"https:\/\/ps.w.org\/wc-discord-notifications\/assets\/icon-256x256.png?rev=2465419","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/wc-discord-notifications\/assets\/screenshot-1.PNG?rev=3505078","caption":"Notifications settings tab - one row per status with enable toggle, webhook URL, test button, and mention field"},{"src":"https:\/\/ps.w.org\/wc-discord-notifications\/assets\/screenshot-2.PNG?rev=3505078","caption":"Logs tab - filterable notification history with response codes"},{"src":"https:\/\/ps.w.org\/wc-discord-notifications\/assets\/screenshot-3.png?rev=3505078","caption":"Example of a rich Discord embed notification in a Discord channel"}],"raw_content":"<!--section=description-->\n<h4>Keep your team in the loop without leaving Discord.<\/h4>\n\n<p>Notifications on Discord for WooCommerce delivers rich, colour-coded notifications to any Discord channel whenever something happens in your store. Whether you want to celebrate a new sale, catch a failed payment, or get pinged when stock runs low - this plugin has you covered.<\/p>\n\n<h4>What you get<\/h4>\n\n<p><strong>Order Notifications<\/strong>\nGet notified for every WooCommerce order status: Pending, Processing, On Hold, Completed, Cancelled, Refunded, and Failed. Each notification includes a colour-coded embed (green for completed, amber for pending, red for failed) along with the customer name, email, country flag, order value, and a list of products ordered.<\/p>\n\n<p><strong>WooCommerce Subscriptions Support<\/strong>\nIf you run a subscription store with WooCommerce Subscriptions, you can receive notifications for subscription status changes including Active, On Hold, Cancelled, Expired, Pending Cancellation, Renewal Payment Complete, and Renewal Payment Failed.<\/p>\n\n<p><strong>New Customer Alerts<\/strong>\nFire a dedicated notification the first time a customer places an order - whether they checked out as a guest or registered an account. Great for tracking growth at a glance.<\/p>\n\n<p><strong>Low Stock Alerts<\/strong>\nReceive a Discord notification as soon as a product hits its WooCommerce low stock threshold, so your team can restock before it becomes a problem.<\/p>\n\n<p><strong>Per-Status @Mentions<\/strong>\nSpecify <code>@here<\/code>, <code>@everyone<\/code>, or a Discord role ID for any individual status. Set a role ping on failed payments so your team gets alerted immediately, without pinging everyone for every order.<\/p>\n\n<p><strong>Minimum Order Value Filter<\/strong>\nReduce noise by only sending notifications for orders above a threshold you set. Useful if you run frequent low-value transactions and only want to be notified for meaningful orders.<\/p>\n\n<p><strong>Test Button Per Webhook<\/strong>\nEvery webhook row has a built-in Test button. Click it to send a live test embed to Discord so you can confirm everything is wired up correctly before going live.<\/p>\n\n<p><strong>Notification Log<\/strong>\nAn optional log records every notification sent - including the order or subscription number, status, products, order value, and the HTTP response code returned by Discord. Logs auto-purge after a configurable number of days (default: 7).<\/p>\n\n<p><strong>Developer Filters<\/strong>\n* <code>ppsndw_woo_discord_payload<\/code> - modify the full Discord payload before it is sent for order and subscription notifications\n* <code>ppsndw_woo_discord_low_stock_payload<\/code> - modify the payload for low stock notifications<\/p>\n\n<h4>Use a different channel per status<\/h4>\n\n<p>Each status has its own webhook field, so you can route notifications to different Discord channels. Send all sales to #orders, failed payments to #alerts, and low stock to #inventory.<\/p>\n\n<!--section=installation-->\n<h4>Step 1: Install and Activate<\/h4>\n\n<ol>\n<li>Go to <strong>Plugins &gt; Add New<\/strong> and search for \"Notifications on Discord for WooCommerce\".<\/li>\n<li>Click <strong>Install Now<\/strong>, then <strong>Activate<\/strong>.<\/li>\n<li>Alternatively, download the zip from WordPress.org, go to <strong>Plugins &gt; Add New &gt; Upload Plugin<\/strong>, and upload the file.<\/li>\n<\/ol>\n\n<h4>Step 2: Create a Discord Webhook<\/h4>\n\n<ol>\n<li>Open Discord and go to the channel you want to receive notifications in.<\/li>\n<li>Click the gear icon next to the channel name to open <strong>Edit Channel<\/strong>.<\/li>\n<li>Go to <strong>Integrations &gt; Webhooks &gt; New Webhook<\/strong>.<\/li>\n<li>Give the webhook a name, optionally set an avatar, then click <strong>Copy Webhook URL<\/strong>.<\/li>\n<\/ol>\n\n<p>Need more help? See the official guide: <a href=\"https:\/\/support.discord.com\/hc\/en-us\/articles\/228383668-Intro-to-Webhooks\">Intro to Webhooks<\/a><\/p>\n\n<h4>Step 3: Configure the Plugin<\/h4>\n\n<ol>\n<li>In your WordPress dashboard, go to <strong>WooCommerce &gt; Discord Notifications<\/strong>.<\/li>\n<li>On the <strong>Notifications<\/strong> tab, find the order status you want to be notified for.<\/li>\n<li>Check the <strong>Enable<\/strong> box, paste your webhook URL, and optionally enter a mention.<\/li>\n<li>Click <strong>Test<\/strong> to send a test notification to Discord and confirm it works.<\/li>\n<li>Click <strong>Save Settings<\/strong>.<\/li>\n<\/ol>\n\n<h4>Optional: Enable Logging<\/h4>\n\n<ol>\n<li>Go to the <strong>Logs<\/strong> tab.<\/li>\n<li>Enable logging and set your preferred auto-purge retention period.<\/li>\n<li>All sent notifications will appear in the log table with response codes so you can confirm delivery.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"i%27m%20not%20receiving%20any%20notifications%20in%20discord\"><h3>I'm not receiving any notifications in Discord<\/h3><\/dt>\n<dd><p>Discord webhooks only accept requests from publicly accessible URLs. If your site is running locally (e.g. on localhost or a private staging environment), Discord cannot reach it and notifications will silently fail. Deploy to a live, publicly accessible server and test again.<\/p><\/dd>\n<dt id=\"how%20do%20i%20send%20notifications%20to%20different%20discord%20channels%20per%20order%20status%3F\"><h3>How do I send notifications to different Discord channels per order status?<\/h3><\/dt>\n<dd><p>Each status row has its own Webhook URL field. Simply paste a different webhook URL for each status to route them to separate channels.<\/p><\/dd>\n<dt id=\"can%20i%20use%20one%20webhook%20for%20all%20statuses%3F\"><h3>Can I use one webhook for all statuses?<\/h3><\/dt>\n<dd><p>Yes. Paste the same webhook URL into every status row you want to enable. All notifications will go to the same channel.<\/p><\/dd>\n<dt id=\"how%20do%20i%20ping%20my%20team%20for%20failed%20payments%3F\"><h3>How do I ping my team for failed payments?<\/h3><\/dt>\n<dd><p>In the <strong>Mention<\/strong> column next to the Failed status, enter <code>@here<\/code>, <code>@everyone<\/code>, or a Discord role ID in the format <code>&lt;@&amp;123456789012345678&gt;<\/code>. That mention will be included in the notification message so the right people get alerted immediately.<\/p><\/dd>\n<dt id=\"where%20do%20i%20find%20a%20discord%20role%20id%3F\"><h3>Where do I find a Discord role ID?<\/h3><\/dt>\n<dd><p>Enable Developer Mode in Discord (User Settings &gt; Advanced &gt; Developer Mode), then right-click any role in Server Settings &gt; Roles and click <strong>Copy Role ID<\/strong>.<\/p><\/dd>\n<dt id=\"what%20is%20the%20minimum%20order%20value%20filter%3F\"><h3>What is the minimum order value filter?<\/h3><\/dt>\n<dd><p>Found at the top of the Notifications tab, this setting lets you suppress notifications for orders below a dollar threshold you set. Set it to <code>0<\/code> to notify for all orders regardless of value.<\/p><\/dd>\n<dt id=\"does%20this%20work%20with%20woocommerce%20subscriptions%3F\"><h3>Does this work with WooCommerce Subscriptions?<\/h3><\/dt>\n<dd><p>Yes. If WooCommerce Subscriptions is installed and active, a Subscription Notifications section will automatically appear in the settings with all supported subscription statuses.<\/p><\/dd>\n<dt id=\"does%20this%20work%20with%20woocommerce%20high-performance%20order%20storage%20%28hpos%29%3F\"><h3>Does this work with WooCommerce High-Performance Order Storage (HPOS)?<\/h3><\/dt>\n<dd><p>Yes. The plugin is fully compatible with WooCommerce HPOS (custom order tables) and has declared compatibility accordingly.<\/p><\/dd>\n<dt id=\"how%20does%20the%20new%20customer%20notification%20work%3F\"><h3>How does the new customer notification work?<\/h3><\/dt>\n<dd><p>A notification fires on a customer's very first order. For registered customers, it checks their total order count. For guests, it checks whether any previous order exists with the same billing email address. If it's their first, the notification fires.<\/p><\/dd>\n<dt id=\"the%20test%20button%20says%20it%20worked%20but%20i%20don%27t%20see%20anything%20in%20discord\"><h3>The Test button says it worked but I don't see anything in Discord<\/h3><\/dt>\n<dd><p>Double-check the webhook URL - even a single extra character will cause it to silently fail. Also make sure the webhook hasn't been deleted in Discord. You can verify by opening the channel's Integrations settings and confirming the webhook still exists.<\/p><\/dd>\n<dt id=\"can%20i%20customise%20what%20data%20is%20sent%20to%20discord%3F\"><h3>Can I customise what data is sent to Discord?<\/h3><\/dt>\n<dd><p>Yes. Use the <code>ppsndw_woo_discord_payload<\/code> filter to modify or replace the payload array before it is sent. For low stock notifications, use <code>ppsndw_woo_discord_low_stock_payload<\/code>. Both filters receive the full payload array and the relevant object (order, subscription, or product).<\/p><\/dd>\n<dt id=\"how%20do%20i%20turn%20off%20logging%3F\"><h3>How do I turn off logging?<\/h3><\/dt>\n<dd><p>Go to <strong>WooCommerce &gt; Discord Notifications &gt; Logs<\/strong> tab and uncheck <strong>Enable Logging<\/strong>, then save. Existing log entries are kept but no new ones will be written. You can purge all existing entries using the <strong>Purge All Logs<\/strong> button.<\/p><\/dd>\n<dt id=\"will%20my%20data%20be%20deleted%20if%20i%20uninstall%20the%20plugin%3F\"><h3>Will my data be deleted if I uninstall the plugin?<\/h3><\/dt>\n<dd><p>Not by default. To remove all plugin settings, the log table, and scheduled events on deletion, go to the <strong>Logs<\/strong> tab and enable <strong>Delete Data on Uninstall<\/strong> before deleting the plugin.<\/p><\/dd>\n<dt id=\"my%20site%20is%20not%20in%20english%20-%20will%20the%20notifications%20work%3F\"><h3>My site is not in English - will the notifications work?<\/h3><\/dt>\n<dd><p>Yes. The plugin is translation-ready and loads its own text domain. All static text can be translated using standard WordPress translation tools. Customer names, product names, and order data are passed through as-is from WooCommerce.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>2.0.0<\/h4>\n\n<ul>\n<li>New Feature: Added WooCommerce Subscriptions support - notifications for Active, On Hold, Cancelled, Expired, Pending Cancellation, Renewal Payment Complete, and Renewal Payment Failed subscription events<\/li>\n<li>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<\/li>\n<li>New Feature: Added low stock alert notifications - sends a dedicated embed to Discord when a product hits its WooCommerce low stock threshold<\/li>\n<li>New Feature: Added new customer notifications - fires on a customer's first-ever order, covering both registered and guest customers<\/li>\n<li>New Feature: Added @mention support per status - specify @here, @everyone, or a Discord role ID to ping your team for critical events<\/li>\n<li>New Feature: Added minimum order value filter - only send notifications for orders above a configured threshold<\/li>\n<li>New Feature: Added test notification button per webhook - sends a live test embed to Discord directly from the settings page<\/li>\n<li>New Feature: Added status-specific embed colours - green for completed\/active\/renewals, amber for pending\/on-hold, red for failed\/cancelled\/expired, grey for refunded<\/li>\n<li>New Feature: Added customer details to order and subscription embeds - customer name, email, and country with flag emoji<\/li>\n<li>New Feature: Added ppsndw_woo_discord_payload filter to allow customisation of the data sent to Discord<\/li>\n<li>New Feature: Added ppsndw_woo_discord_low_stock_payload filter for low stock notification customisation<\/li>\n<li>New Feature: Added uninstall.php - removes log table, all plugin options, and scheduled cron events when the plugin is deleted (opt-in via settings)<\/li>\n<li>Enhancement: Redesigned settings page with tabbed layout (Notifications and Logs), compact single-row-per-status table, and section headings<\/li>\n<li>Enhancement: Moved settings page under the WooCommerce menu<\/li>\n<li>Enhancement: Added Discord embed field truncation to respect API limits (title 256 chars, field values 1024 chars), preventing silent rejections with long product lists<\/li>\n<li>Enhancement: Added response code capture - the HTTP status returned by Discord is now logged alongside each notification entry<\/li>\n<li>Enhancement: Added edit_url storage in the log table at write time, ensuring HPOS-compatible order links in the log view without extra queries<\/li>\n<li>Enhancement: Added load_plugin_textdomain() so translation files in \/languages are properly loaded<\/li>\n<li>Enhancement: Updated Tested Up To for WordPress 6.8 and WooCommerce 9.4<\/li>\n<li>Security: Escaped all dynamic output in the settings page with esc_html(), esc_attr(), and wp_kses_post()<\/li>\n<li>Security: Sanitize webhook URLs with esc_url_raw() instead of sanitize_text_field()<\/li>\n<li>Security: Replaced date() with gmdate() for timezone-safe timestamp generation<\/li>\n<li>Security: Added defined('ABSPATH') || exit guard to all PHP include files to prevent direct file access<\/li>\n<li>Enhancement: Declared WooCommerce High-Performance Order Storage (HPOS) compatibility<\/li>\n<li>Enhancement: Replaced new WC_Order() with wc_get_order() for WooCommerce HPOS compatibility<\/li>\n<li>Enhancement: Order edit URL now uses the WooCommerce native method compatible with HPOS<\/li>\n<li>Enhancement: Fixed country flag emoji generation to use pure PHP UTF-8 encoding, removing the mbstring extension requirement<\/li>\n<li>Bug Fix: Cancelled order status settings were incorrectly mapped to refunded option IDs, preventing cancelled notifications from working<\/li>\n<li>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<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Enhancement: Updated Tested Up To for WordPress core and WooCommerce<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release<\/li>\n<\/ul>","raw_excerpt":"Send WooCommerce order and subscription notifications to Discord - rich embeds, customer details, mentions, low stock alerts, and more.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/sk.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/135617","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sk.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/sk.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/sk.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=135617"}],"author":[{"embeddable":true,"href":"https:\/\/sk.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/jarryd-long"}],"wp:attachment":[{"href":"https:\/\/sk.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=135617"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/sk.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=135617"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/sk.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=135617"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/sk.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=135617"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/sk.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=135617"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/sk.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=135617"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}