{"id":388283,"date":"2026-10-20T09:19:22","date_gmt":"2026-10-20T09:19:22","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/opuswerk-delivery-delay-notices-for-woocommerce\/"},"modified":"2026-10-20T09:18:51","modified_gmt":"2026-10-20T09:18:51","slug":"opuswerk-delivery-delay-notices-for-woocommerce","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/opuswerk-delivery-delay-notices-for-woocommerce\/","author":23573567,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.0","stable_tag":"1.0.0","tested":"7.1.3","requires":"6.5","requires_php":"7.4","requires_plugins":null,"header_name":"Opuswerk Delivery Delay Notices for WooCommerce","header_author":"Opuswerk","header_description":"Emails customers when a paid order still has not shipped after a set number of days, then alerts your staff. Stops as soon as tracking appears.","assets_banners_color":"545454","last_updated":"2026-10-20 09:18:51","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/opuswerk.at\/plugins\/delivery-delay\/","header_author_uri":"https:\/\/opuswerk.at","rating":0,"author_block_rating":0,"active_installs":0,"downloads":56,"num_ratings":0,"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":"ykamanin","date":"2026-10-20 09:18:51","revision":3756263}},"upgrade_notice":{"1.0.0":"<p>First release.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3756262,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3756262,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256},"icon.svg":{"filename":"icon.svg","revision":3756262,"resolution":false,"location":"assets","locale":false}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3756262,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3756262,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3756262,"resolution":"1","location":"assets","locale":"","width":1280,"height":720},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3756262,"resolution":"2","location":"assets","locale":"","width":1280,"height":720},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3756262,"resolution":"3","location":"assets","locale":"","width":1280,"height":720},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3756262,"resolution":"4","location":"assets","locale":"","width":1280,"height":720},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3756262,"resolution":"5","location":"assets","locale":"","width":1280,"height":720}},"screenshots":{"1":"The settings tab: the rule in one sentence, the status of the daily check and the steps.","2":"Which orders count: the shipped signal, waiting statuses, excluded shipping methods and start date.","3":"The preview: orders due now and orders waiting for a later step.","4":"The first notice in the WooCommerce email settings.","5":"An order note written for each email sent."}},"plugin_section":[],"plugin_tags":[56975,13827,4906,3546,286],"plugin_category":[45],"plugin_contributors":[283687],"plugin_business_model":[],"class_list":["post-388283","plugin","type-plugin","status-publish","hentry","plugin_tags-backorder","plugin_tags-delivery","plugin_tags-notifications","plugin_tags-shipping","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_contributors-ykamanin","plugin_committers-ykamanin"],"banners":{"banner":"https:\/\/ps.w.org\/opuswerk-delivery-delay-notices-for-woocommerce\/assets\/banner-772x250.png?rev=3756262","banner_2x":"https:\/\/ps.w.org\/opuswerk-delivery-delay-notices-for-woocommerce\/assets\/banner-1544x500.png?rev=3756262","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":"https:\/\/ps.w.org\/opuswerk-delivery-delay-notices-for-woocommerce\/assets\/icon.svg?rev=3756262","icon":"https:\/\/ps.w.org\/opuswerk-delivery-delay-notices-for-woocommerce\/assets\/icon.svg?rev=3756262","icon_2x":false,"generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/opuswerk-delivery-delay-notices-for-woocommerce\/assets\/screenshot-1.png?rev=3756262","caption":"The settings tab: the rule in one sentence, the status of the daily check and the steps."},{"src":"https:\/\/ps.w.org\/opuswerk-delivery-delay-notices-for-woocommerce\/assets\/screenshot-2.png?rev=3756262","caption":"Which orders count: the shipped signal, waiting statuses, excluded shipping methods and start date."},{"src":"https:\/\/ps.w.org\/opuswerk-delivery-delay-notices-for-woocommerce\/assets\/screenshot-3.png?rev=3756262","caption":"The preview: orders due now and orders waiting for a later step."},{"src":"https:\/\/ps.w.org\/opuswerk-delivery-delay-notices-for-woocommerce\/assets\/screenshot-4.png?rev=3756262","caption":"The first notice in the WooCommerce email settings."},{"src":"https:\/\/ps.w.org\/opuswerk-delivery-delay-notices-for-woocommerce\/assets\/screenshot-5.png?rev=3756262","caption":"An order note written for each email sent."}],"raw_content":"<!--section=description-->\n<p>A customer pays, and then hears nothing. The goods are late: a supplier backorder, an item\nmade to order, a busy season. No shipping label exists yet, so no tracking email goes out.\nAfter a week or two the customer asks \"where is my order?\", opens a payment dispute or\nleaves a poor review. One honest email would have prevented all three.<\/p>\n\n<p>WooCommerce sends emails when something happens to an order. \"Nothing happened\" is not an\nevent, so nothing is sent. This plugin closes that gap.<\/p>\n\n<p><strong>The rule, in one sentence<\/strong><\/p>\n\n<p>Every morning the plugin looks at paid orders that are still waiting to ship; if an order\nhas no tracking 12 days after payment, the customer gets a first notice, 7 days later a\nsecond one, and 7 days after that your staff get an alert to contact the customer, unless\nthe order has shipped in the meantime. All three numbers are yours to change.<\/p>\n\n<p><strong>What it does<\/strong><\/p>\n\n<ul>\n<li>Sends two notices to the customer and one alert to your staff, each step on its own\nschedule and each one switchable.<\/li>\n<li>Stops the moment the order ships. It reads the tracking of Advanced Shipment Tracking\n(free and Pro), WooCommerce Shipment Tracking and Shiptastic (the shipments of\nGermanized), or any order meta key you name. Without a tracking plugin, an order counts as\nshipped when it leaves the \"Processing\" and \"On hold\" statuses, for example when you mark\nit as completed.<\/li>\n<li>Never emails your order history. Only orders paid after you first activated the plugin\nare considered, unless you set an earlier start date yourself, and a preview shows what\nthat would send before you save.<\/li>\n<li>Shows a preview of what the next check would send, on its settings tab and in WP-CLI,\nwithout sending anything.<\/li>\n<li>Sends at most one email per order per day, so a long-delayed order never receives three\nemails at once.<\/li>\n<li>Leaves out local pickup, orders without shipping and any shipping method you exclude.<\/li>\n<li>Adds an order note for every email it sends, and writes one log line per order to\nWooCommerce, Status, Logs.<\/li>\n<li>Uses real WooCommerce emails. You edit subject, heading and text under WooCommerce,\nSettings, Emails, like any other WooCommerce email, and your theme can override the\ntemplates.<\/li>\n<li>Handles large shops in batches through WooCommerce's Action Scheduler, and declares\ncompatibility with High-Performance Order Storage.<\/li>\n<\/ul>\n\n<p>The default emails are friendly and honest, and they promise no delivery date. If you know\na date, add it in the email settings.<\/p>\n\n<p><strong>For shops in Germany, Austria and Switzerland<\/strong><\/p>\n\n<p>A delivery delay (Lieferverz\u00f6gerung) is where shops lose trust fastest, and the customer\nnotice is a matter of good service. A complete German translation is available, in the\nformal (Sie) and the informal (du) form. WordPress loads it from translate.wordpress.org.\nUntil the language pack is published there, German shops see the English text and can\nchange the email texts in the WooCommerce email settings.<\/p>\n\n<p><strong>What it deliberately does not do<\/strong><\/p>\n\n<p>It does not phone home, does not require an account, and does not hold a feature back for a\npaid tier. It is not a legal tool: whether and how you must inform customers about a delay\nis a question for your legal advisor.<\/p>\n\n<p><strong>For developers<\/strong><\/p>\n\n<p>Add a tracking source with the <code>opusdd_tracking_adapters<\/code> filter, add or change steps with\n    opusdd_steps, leave orders out with <code>opusdd_skip_reason<\/code>, move a due date with\n    opusdd_step_due_at, and react to a send with the <code>opusdd_step_sent<\/code> action. The full list\nis in the plugin's source.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Install and activate the plugin. WooCommerce 8.0 or newer must be active.<\/li>\n<li>Go to WooCommerce, then Settings, then \"Delivery delays\".<\/li>\n<li>Check the shipped signal: \"Detect automatically\" picks your tracking plugin.<\/li>\n<li>Adjust the days of each step if 12, 7 and 7 do not suit you, and save.<\/li>\n<li>Read the email texts under WooCommerce, Settings, Emails, and adapt them to your shop.<\/li>\n<li>Open the \"Preview\" section to see what the next check would send.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"when%20exactly%20is%20an%20email%20sent%3F\"><h3>When exactly is an email sent?<\/h3><\/dt>\n<dd><p>An order is considered when it is paid, sits in a waiting status (by default \"Processing\" or\n\"On hold\"), has a shipping method other than pickup, and was paid on or after the start\ndate. The first notice goes out once the order has gone the set number of days (default 12)\nafter payment without tracking. The second notice follows the set number of days after the\nfirst (default 7), and the staff alert the set number of days after the second (default 7).\nThe check runs once a day, in the early morning of your site's time zone.<\/p><\/dd>\n<dt id=\"what%20counts%20as%20%22shipped%22%3F\"><h3>What counts as \"shipped\"?<\/h3><\/dt>\n<dd><p>Whatever you choose under \"Shipped signal\": tracking from Advanced Shipment Tracking,\nWooCommerce Shipment Tracking or Shiptastic, a value in an order meta key of your choice,\nor the order leaving the waiting statuses. \"Detect automatically\" picks the tracking plugin\nit finds. If the tracking plugin you chose is deactivated later, the plugin pauses and tells\nyou on every admin screen, instead of emailing every open order.<\/p><\/dd>\n<dt id=\"will%20it%20email%20all%20my%20old%20open%20orders%20when%20i%20activate%20it%3F\"><h3>Will it email all my old open orders when I activate it?<\/h3><\/dt>\n<dd><p>No. Only orders paid after the first activation are considered. To include older orders,\nset an earlier start date on the settings tab; the preview shows how many notices that\nwould send.<\/p><\/dd>\n<dt id=\"which%20tracking%20plugins%20are%20supported%3F\"><h3>Which tracking plugins are supported?<\/h3><\/dt>\n<dd><p>Advanced Shipment Tracking (free and Pro), WooCommerce Shipment Tracking and Shiptastic for\nWooCommerce, which also provides the shipments of Germanized. For other plugins that store\nthe tracking number in the order, choose \"An order meta key\" and enter that key, for\nexample <code>ywot_tracking_code<\/code> for YITH WooCommerce Order Tracking or <code>_wot_tracking_number<\/code>\nfor Orders Tracking for WooCommerce.<\/p><\/dd>\n<dt id=\"what%20happens%20if%20i%20disable%20one%20of%20the%20emails%3F\"><h3>What happens if I disable one of the emails?<\/h3><\/dt>\n<dd><p>That step is passed over and the next one keeps its date. With the first notice disabled,\nthe second notice still goes out 19 days after payment with the default settings. If the\ncustomer has no email address, the customer notices are passed over the same way.<\/p><\/dd>\n<dt id=\"who%20receives%20the%20staff%20alert%3F\"><h3>Who receives the staff alert?<\/h3><\/dt>\n<dd><p>The site's admin email address by default. Enter one or more other addresses under\nWooCommerce, Settings, Emails, \"Delivery delay: alert to staff\".<\/p><\/dd>\n<dt id=\"can%20i%20see%20what%20would%20be%20sent%20before%20anything%20is%20sent%3F\"><h3>Can I see what would be sent before anything is sent?<\/h3><\/dt>\n<dd><p>Yes. The \"Preview\" section of the settings tab lists every order that is due now or waiting\nfor a later step, with the date. On the command line, <code>wp opusdd preview<\/code> shows the same.<\/p><\/dd>\n<dt id=\"can%20i%20test%20the%20emails%20on%20a%20staging%20shop%3F\"><h3>Can I test the emails on a staging shop?<\/h3><\/dt>\n<dd><p>Yes. <code>wp opusdd test-flow --order=&lt;id&gt; --to=&lt;your address&gt;<\/code> walks one order through every\nstep, sends each email to your address only, and restores the order afterwards.\n    wp opusdd send --order= --step=1 sends one step for real.<\/p><\/dd>\n<dt id=\"is%20it%20compatible%20with%20hpos%3F\"><h3>Is it compatible with HPOS?<\/h3><\/dt>\n<dd><p>Yes. It reads and writes orders only through the WooCommerce order API and declares\ncompatibility with High-Performance Order Storage.<\/p><\/dd>\n<dt id=\"does%20it%20send%20any%20data%20anywhere%3F\"><h3>Does it send any data anywhere?<\/h3><\/dt>\n<dd><p>No. The plugin makes no external requests of its own. Its emails go through WooCommerce\nand your site's normal mail setup.<\/p><\/dd>\n<dt id=\"what%20is%20removed%20when%20i%20delete%20the%20plugin%3F\"><h3>What is removed when I delete the plugin?<\/h3><\/dt>\n<dd><p>Its settings, the settings of its three emails, its scheduled actions and the send records\nit stored on orders. The order notes stay, because they are part of each order's history.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>First release.<\/li>\n<li>Two customer notices and a staff alert for paid orders that have not shipped, each on its own schedule.<\/li>\n<li>Shipped signal from Advanced Shipment Tracking, WooCommerce Shipment Tracking, Shiptastic, an order meta key or the order status.<\/li>\n<li>No email for orders paid before the first activation or the chosen start date.<\/li>\n<li>Preview on the settings tab and in WP-CLI; order note and log line for every send.<\/li>\n<li>WP-CLI commands <code>run<\/code>, <code>preview<\/code>, <code>send<\/code> and <code>test-flow<\/code>.<\/li>\n<li>Compatible with High-Performance Order Storage.<\/li>\n<\/ul>","raw_excerpt":"Emails customers when a paid order still has not shipped after a set number of days, then alerts your staff. Stops as soon as tracking appears.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/388283","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=388283"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/ykamanin"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=388283"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=388283"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=388283"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=388283"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=388283"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=388283"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}