{"id":389509,"date":"2026-10-23T07:22:21","date_gmt":"2026-10-23T07:22:21","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/extonify-custom-emails-per-product-for-woocommerce\/"},"modified":"2026-10-23T07:22:10","modified_gmt":"2026-10-23T07:22:10","slug":"extonify-custom-emails-per-product","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/extonify-custom-emails-per-product\/","author":23551089,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.0","stable_tag":"1.0.0","tested":"7.1.3","requires":"6.6","requires_php":"8.0","requires_plugins":null,"header_name":"Extonify Custom Emails Per Product for WooCommerce","header_author":"Extonify","header_description":"Send custom WooCommerce emails per product \u2014 either inserted into a native WooCommerce email or delivered as a separate message.","assets_banners_color":"74748e","last_updated":"2026-10-23 07:22:10","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"","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":"extonify","date":"2026-10-23 07:22:10","revision":3761082}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3761082,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3761082,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3761082,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3761082,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0"],"block_files":[],"assets_screenshots":{"screenshot-1.jpg":{"filename":"screenshot-1.jpg","revision":3761082,"resolution":"1","location":"assets","locale":"","width":1363,"height":936},"screenshot-2.jpg":{"filename":"screenshot-2.jpg","revision":3761082,"resolution":"2","location":"assets","locale":"","width":1176,"height":1560},"screenshot-3.jpg":{"filename":"screenshot-3.jpg","revision":3761082,"resolution":"3","location":"assets","locale":"","width":1180,"height":775},"screenshot-4.jpg":{"filename":"screenshot-4.jpg","revision":3761082,"resolution":"4","location":"assets","locale":"","width":1176,"height":478},"screenshot-5.jpg":{"filename":"screenshot-5.jpg","revision":3761082,"resolution":"5","location":"assets","locale":"","width":1348,"height":926},"screenshot-6.jpg":{"filename":"screenshot-6.jpg","revision":3761082,"resolution":"6","location":"assets","locale":"","width":1348,"height":926},"screenshot-7.jpg":{"filename":"screenshot-7.jpg","revision":3761082,"resolution":"7","location":"assets","locale":"","width":856,"height":527},"screenshot-8.jpg":{"filename":"screenshot-8.jpg","revision":3761082,"resolution":"8","location":"assets","locale":"","width":1160,"height":332}},"screenshots":{"1":"The rules list, showing each rule's trigger, targeting, delivery mode and status.","2":"The rule editor \u2014 choosing the trigger and targeting the rule by product,\nvariation, category, tag or type, including exclusions.","3":"The rule editor \u2014 the message subject, heading and content, with the placeholder\nreference beside them.","4":"The rule editor \u2014 delivery mode, delay and the choice between one message per\norder and one per matched product.","5":"The preview screen, showing what a rule would send for a real order.","6":"The delivery history screen, listing each delivery with its rule, order and\nstatus, and every attempt with its recipient, subject and outcome.","7":"The \"Custom product emails\" panel on the order edit screen \u2014 this order's\ndeliveries, and the control that sends one of them by hand.","8":"The confirmation screen shown before an email is sent or resent by hand, naming\nthe rule, the order and exactly who the email will go to."}},"plugin_section":[],"plugin_tags":[144485,288008,149139,253209,286],"plugin_category":[45],"plugin_contributors":[287253],"plugin_business_model":[],"class_list":["post-389509","plugin","type-plugin","status-publish","hentry","plugin_tags-custom-emails","plugin_tags-email-recipients","plugin_tags-order-emails","plugin_tags-product-emails","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_contributors-extonify","plugin_committers-extonify"],"banners":{"banner":"https:\/\/ps.w.org\/extonify-custom-emails-per-product\/assets\/banner-772x250.png?rev=3761082","banner_2x":"https:\/\/ps.w.org\/extonify-custom-emails-per-product\/assets\/banner-1544x500.png?rev=3761082","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/extonify-custom-emails-per-product\/assets\/icon-128x128.png?rev=3761082","icon_2x":"https:\/\/ps.w.org\/extonify-custom-emails-per-product\/assets\/icon-256x256.png?rev=3761082","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/extonify-custom-emails-per-product\/assets\/screenshot-1.jpg?rev=3761082","caption":"The rules list, showing each rule's trigger, targeting, delivery mode and status."},{"src":"https:\/\/ps.w.org\/extonify-custom-emails-per-product\/assets\/screenshot-2.jpg?rev=3761082","caption":"The rule editor \u2014 choosing the trigger and targeting the rule by product,\nvariation, category, tag or type, including exclusions."},{"src":"https:\/\/ps.w.org\/extonify-custom-emails-per-product\/assets\/screenshot-3.jpg?rev=3761082","caption":"The rule editor \u2014 the message subject, heading and content, with the placeholder\nreference beside them."},{"src":"https:\/\/ps.w.org\/extonify-custom-emails-per-product\/assets\/screenshot-4.jpg?rev=3761082","caption":"The rule editor \u2014 delivery mode, delay and the choice between one message per\norder and one per matched product."},{"src":"https:\/\/ps.w.org\/extonify-custom-emails-per-product\/assets\/screenshot-5.jpg?rev=3761082","caption":"The preview screen, showing what a rule would send for a real order."},{"src":"https:\/\/ps.w.org\/extonify-custom-emails-per-product\/assets\/screenshot-6.jpg?rev=3761082","caption":"The delivery history screen, listing each delivery with its rule, order and\nstatus, and every attempt with its recipient, subject and outcome."},{"src":"https:\/\/ps.w.org\/extonify-custom-emails-per-product\/assets\/screenshot-7.jpg?rev=3761082","caption":"The \"Custom product emails\" panel on the order edit screen \u2014 this order's\ndeliveries, and the control that sends one of them by hand."},{"src":"https:\/\/ps.w.org\/extonify-custom-emails-per-product\/assets\/screenshot-8.jpg?rev=3761082","caption":"The confirmation screen shown before an email is sent or resent by hand, naming\nthe rule, the order and exactly who the email will go to."}],"raw_content":"<!--section=description-->\n<p>Some products need to say something the rest of the order does not \u2014 licence terms for a\ndownload, or a lead time for a made-to-order item. Write that message once, choose which\nproducts it applies to, and decide when it goes out. It runs through WooCommerce's own\nemail system.<\/p>\n\n<h4>Rules<\/h4>\n\n<p>A rule is one message plus the conditions under which it is sent, and a store can have as\nmany as it needs. Trigger, timing, recipients and subject belong to a rule sent as its own\nemail; an inserted rule takes those from the WooCommerce email it joins.<\/p>\n\n<h4>When a rule fires<\/h4>\n\n<ul>\n<li>when an order <strong>reaches<\/strong> a status you choose<\/li>\n<li>when an order <strong>moves<\/strong> from one specific status to another<\/li>\n<li>when an order is <strong>refunded<\/strong>, in full or in part<\/li>\n<\/ul>\n\n<p>These apply to a rule sent as its own email. An inserted rule has no trigger of its own:\nWooCommerce decides when its email sends.<\/p>\n\n<h4>Targeting<\/h4>\n\n<p>Target a rule by individual products or variations, product categories, tags or product\ntype. Each selector can include or exclude products. An item matches any selected\ninclude, while a matching exclusion always wins. Choose \"Every product in the order\"\nto start broadly and then exclude exceptions.<\/p>\n\n<h4>Delivery modes<\/h4>\n\n<p>Two modes, chosen per rule:<\/p>\n\n<ul>\n<li><strong>Insert<\/strong> \u2014 placed inside a WooCommerce email the store already sends, so its reader\ngets one email rather than two. You choose which of the store's <strong>order<\/strong> emails it\njoins \u2014 a customer one or an admin one \u2014 and where the message appears. The list\nleaves out any email this plugin can confirm will not show the order, and flags any\nit cannot confirm either way.<\/li>\n<li><strong>Separate<\/strong> \u2014 sent as its own email, with its own subject line.<\/li>\n<\/ul>\n\n<h4>Delay and grouping<\/h4>\n\n<p>Both of these belong to a rule sent as its own email. It can wait \u2014 seconds, minutes,\nhours or days after the trigger \u2014 queued through Action Scheduler, WooCommerce's own\nbackground queue. And when it matches several products in one order, you choose: <strong>one\nmessage for the order<\/strong>, listing the matched products, or <strong>one message per product<\/strong>.<\/p>\n\n<h4>Who receives it<\/h4>\n\n<p>Recipients belong to a rule sent as its own email. A line can be the word <em>customer<\/em> for\nthe order's billing address, <em>admin<\/em> for the site administrator, or any email address, and\na rule can carry separate To, Cc and Bcc lists. A rule with no To recipient sends nothing\nand records that as the reason. An inserted rule has none of its own: its content goes into\nthe WooCommerce email already being sent, to whoever that email is addressed to.<\/p>\n\n<h4>Placeholders<\/h4>\n\n<p>Body content can carry placeholders filled in from the live order: customer name, email\nand phone; order number, date, status, total and payment method; billing and shipping\naddresses; store name and sender address; the matched product's name, SKU, quantity and\nvariation attributes; list placeholders covering every matched product; and custom fields.\nA separate email takes them in its subject and heading too, and the rule editor lists each\none with a description.<\/p>\n\n<h4>Preview and test<\/h4>\n\n<ul>\n<li><strong>Preview<\/strong> renders a rule against a real order in the WooCommerce email layout, in both\nHTML and plain text. It writes nothing and sends nothing; a per-product rule shows one\nmessage and says how many would be sent.<\/li>\n<li><strong>Send a test email<\/strong> delivers the rendered message to an address you choose. The\nrule's own recipients are not used \u2014 not its To, Cc or Bcc. It is a real email, and only\na rule sent as its own email can be tested: an inserted rule has none of its own.<\/li>\n<\/ul>\n\n<h4>Delivery history<\/h4>\n\n<p>Every automatic delivery is recorded \u2014 rule, order, recipient, subject line, whether it\nsucceeded and the reason if it did not \u2014 store-wide on its own screen and per-order on the\norder edit screen. Details go with a personal-data erasure request, or when you remove the\nplugin's data; nothing is cleared on a schedule in this release.<\/p>\n\n<h4>Sending by hand<\/h4>\n\n<p>From an order you can send any eligible rule's message on demand, resend one already sent,\nand send or cancel one waiting on its delay \u2014 each behind a confirmation naming the\nrecipient.<\/p>\n\n<h4>Compatibility<\/h4>\n\n<p>Messages use WooCommerce's email templates. Compatibility with theme overrides and\nthird-party email customizers varies. Preview rules and verify insert mode with a real\ntest order. The plugin declares compatibility with High-Performance Order Storage (HPOS)\nand is tested with it enabled.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Install from the WordPress.org plugin directory, or upload the zip under <strong>Plugins &gt;\nAdd New &gt; Upload Plugin<\/strong>.<\/li>\n<li>Activate it, then go to <strong>WooCommerce &gt; Product Emails<\/strong> to create your first rule.<\/li>\n<\/ol>\n\n<p>WooCommerce must be installed and active. If WordPress, PHP or WooCommerce is older than\nthis plugin requires, it stays inactive and names the unmet requirement. On multisite it\nactivates per site, not network-wide.<\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20the%20recipient%20get%20two%20emails%3F\"><h3>Does the recipient get two emails?<\/h3><\/dt>\n<dd><p>Only if you choose that. An <strong>insert<\/strong> rule puts its message inside an email WooCommerce\nis already sending, so one arrives. A <strong>separate<\/strong> rule sends its own.<\/p><\/dd>\n<dt id=\"what%20happens%20if%20two%20rules%20match%20the%20same%20product%3F\"><h3>What happens if two rules match the same product?<\/h3><\/dt>\n<dd><p>Both send, unless you tell one to stop the others: each rule has a priority, and can be\nmarked to stop the rest for that trigger.<\/p><\/dd>\n<dt id=\"can%20the%20same%20email%20be%20sent%20twice%20for%20the%20same%20order%3F\"><h3>Can the same email be sent twice for the same order?<\/h3><\/dt>\n<dd><p>No. Each automatic delivery is recorded against the order, the rule and the event that\ncaused it, and that record prevents a repeat \u2014 so the same automatic message is not sent\nagain if the order changes status back and forth. Sending by hand is always possible, and\nis recorded as deliberate.<\/p><\/dd>\n<dt id=\"what%20happens%20to%20a%20delayed%20message%20if%20i%20disable%20the%20rule%3F\"><h3>What happens to a delayed message if I disable the rule?<\/h3><\/dt>\n<dd><p>It is cancelled. Queued messages are re-checked against the live rule and the live order\nat the moment they are due, so a message that no longer applies is not sent.<\/p><\/dd>\n<dt id=\"is%20my%20data%20removed%20if%20i%20uninstall%3F\"><h3>Is my data removed if I uninstall?<\/h3><\/dt>\n<dd><p>The plugin creates its own database tables. Removing them on uninstall is opt-in, so\nuninstalling keeps your delivery history unless you ask.<\/p><\/dd>\n<dt id=\"does%20it%20support%20personal-data%20export%20and%20erasure%3F\"><h3>Does it support personal-data export and erasure?<\/h3><\/dt>\n<dd><p>Yes. Delivery details are returned by WordPress's personal-data exporter and removed by\nits eraser, including where a message was addressed to someone other than the customer.<\/p><\/dd>\n<dt id=\"can%20i%20translate%20it%3F\"><h3>Can I translate it?<\/h3><\/dt>\n<dd><p>Yes. The plugin ships with a translation template and its interface is translatable. One\nexception is stated rather than glossed over: some delivery diagnostics are still English\nonly. The coded reasons a scheduled email was cancelled are translated; the free-text\ndetail composed for other outcomes is not \u2014 the reason and failure lines on a delivery\nattempt, on the delivery history screen and in the order-edit panel, and the note about\nunresolved placeholders above a preview. Making them translatable is scheduled for a later\nrelease.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial public release.<\/li>\n<\/ul>","raw_excerpt":"Send a custom WooCommerce email for chosen products, either added into a native order email or sent as a separate message.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/389509","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=389509"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/extonify"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=389509"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=389509"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=389509"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=389509"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=389509"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=389509"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}