
WooCommerce custom emails per product let you send a different message to customers based on the exact item they buy.
To send a different email depending on what someone buys in WooCommerce, you have three working routes:
- Append a per-product message inside your existing order emails using a dedicated add-on (no code) or a short snippet (free).
- Trigger a separate, designed email based on the exact product purchased using an automation plugin (no code, scalable).
- Write a code snippet that targets a product ID, variation, or category and injects content into the receipt.
Some stores just need a note added to the receipt; others need a whole separate email with its own timing.
In this guide, we'll explore all three methods, what they cost, who they're for, and how to pick one, with a comparison table, a deliverability checklist, and a troubleshooting section for when the email doesn't fire.
Short on time? Watch our video tutorial on how to send custom email content for each product using the WooCommerce email designer tool 👇

Table of Contents
- 1 What Are Per-Product WooCommerce Emails?
- 2 3 Ways to Send Custom Per Product Emails in WooCommerce
- 3 Method 1: Append a Message With a Dedicated Plugin (No-Code)
- 4 Method 2: Trigger a Full Custom Email Per Product With Automation
- 5 Sending Custom Emails Per Product Category to Customers in WooCommerce
- 6 Method 3: Add a Product-Specific Message With Code
- 7 Send By Category vs. Variation vs. Single Product: Which Condition to Use?
- 8 Troubleshooting: Why Your Per-Product Email Isn't Sending
- 9 10 High-Converting Custom Per Product Email Ideas
- 10 Deliverability Guide for Custom Emails
- 11 Frequently Asked Questions
- 12 Skyrocket Your Sales with WooCommerce Custom Emails Per Product!
What Are Per-Product WooCommerce Emails?
A per-product WooCommerce email is an order communication that varies based on the specific item purchased, rather than sending every buyer the same default receipt.
It either adds product-specific content (a license key, setup PDF, or care instructions) to the standard order email or sends a separate email when a particular product, variation, or category is purchased.
Which of the three methods you use depends only on whether you need to add a line to the existing email or send a new email.
3 Ways to Send Custom Per Product Emails in WooCommerce
| Method | Cost | No-Code? | Best For |
|---|---|---|---|
| Dedicated per-product add-on | Free / paid | Yes | Appending a simple message to a product's receipt. But it uses the same default WooCommerce email, which doesn't look branded or attractive. |
| Automation plugin | Free / Pro | Yes | A separate designed/delayed email with beautiful templates, smart conditions and attractive coupons. |
| Code snippet (email hooks) | Free | No | Developers who want exact control without any plugin weight. |
Method 1: Append a Message With a Dedicated Plugin (No-Code)
In this method, you write a message once, attach it to a product, and it appears in the order email whenever the product is purchased, without any design or sequence.
You can choose these plugins to do that:
- WC Custom Emails Per Product: You create messages under a new custom emails menu, then on each product's edit screen you pick which message shows, in which order status email it appears, and where in the template (before/after the order table, after order meta, or after customer details). If two products in a single order share the same message, it appears only once.
- Additional Custom Emails & Recipients for WooCommerce: The free version sends one custom email triggered by order status, with the option to fire only when certain products or categories are in the cart, and to send it later. It's good if you want a separate email rather than an appended line but don't need a full builder.
Make sure to install the plugin and follow these steps below:
Step 1: Add the custom email
Go to Custom Emails from the WordPress menu and click on 'Add New Custom Message'.

Create a message with your license text, download link, or care note. Plain HTML also works here.
Step 2: Assign the message to the product
Edit the product, find the new Custom Emails tab in the Product Data box, and assign the message.

Choose the order status (Processing / On-Hold / Completed) and the location inside the email.
Save, place a test order for that product, and confirm the note appears in the received email.

This method is best for stores with a handful of products that each need a fixed instruction.
Here, the content is contained within the default template, so you're styling within WooCommerce's email skin, not designing a standalone email.
Method 2: Trigger a Full Custom Email Per Product With Automation
When you need a separate, beautifully designed email with relevant content for different products, an automation builder like FunnelKit Automations is the scalable answer.
FunnelKit Automations is a powerful WordPress marketing broadcast and automation CRM. You can build automated workflows in minutes using pre-built recipes, send broadcasts, get real-time insights, customize your emails with the drag-and-drop visual editor, and more.
Instead of appending a line to the receipt, you build a standalone email that fires on its own trigger, with conditions and timing.
Install FunnelKit Automations Pro to unlock more pre-built automations and advanced customization options - and send custom WooCommerce per-product emails.
FunnelKit Automations includes Free (Lite) and Pro (Premium) versions.
Step 1: Import the WooCommerce custom emails per product automation
Once the FunnelKit Automations plugin is installed, add a new automation to send your custom WooCommerce per-product emails.
Head to the Automations section and click on ‘Create Automation’.

We have already created a WooCommerce post-purchase email sequence that allows you to contact customers when they purchase a specific product.
All you have to do is import it. As simple as that.

You can see a preview of the automation.
Here, click on ‘Import’ and enter the name of your per-product email automation for WooCommerce.

Clicking on Create will add this automation to your workspace.
But wait; you must still tweak it to acclimatize to your needs.
Step 2: Configure the event trigger and set a delay to the email
Under the WooCommerce section, click on the ‘Order Created’ event and hit ‘Done’ to add it to your workflow.

Since we want to do this after the purchase, we will tick Completed or Processing.
When the order is completed, i.e., when the customer receives the order, the automation will be triggered.

Click on ‘Save’ when done.
Next, set the delay in minutes, hours, days, weeks, and months.
However, we will keep this WooCommerce per-product email sequence for 30 minutes. So, the automation will trigger 30 minutes after the order is delivered.

Click on 'Save' when done.
Step 3: Add conditions to send specific emails per product
Now, let’s tweak the conditions.
Click on Condition and add the product(s) on which you want to run your WooCommerce custom per-product email sequence.
You can choose any one of the three conditions:
- Matches any of
- Matches exactly
- Matches none of
Now, add the product. After adding the product, click on ‘Save’.

Further, you need to define what happens when the condition is met and when it is not.
This WooCommerce per-product email sequence will run only when the defined product is purchased from the checkout page. Otherwise, you can set it as Exit.
If the condition is met, you can add an Action.
Step 4: Create your WooCommerce custom product-specific email
In this email, appreciate the customer’s purchase choice. Send them a video tutorial on how to unbox the item and what to remember before first use.
You can even send them a cross-selling email and recommend products that complement their purchase.
With FunnelKit Automations Pro, you get a drag-and-drop visual builder to create beautiful product-specific emails.
Select Visual Builder and click ‘Edit’ to start designing your emails.

You get access to various pre-designed email templates that you can import with a single click and customize as you please.
You can even create custom email templates for the WooCommerce store with your own branding and style.
There are email templates for every case, like abandoned carts, sales campaigns, product recommendations, transactional emails, winback emails, and more.
We’ll import the post-purchase education email template.

You can drag and drop your content blocks, such as headings, text, images, videos, and more, to make your emails look on-brand.
You can add your business logo, change the background color, include pre-built layouts, and more.

👉 Learn how you can customize your WooCommerce emails here.
Hit 'Save' when done and activate your automation on your WooCommerce website.

This is how you can send your customers WooCommerce custom emails per product.
Sending Custom Emails Per Product Category to Customers in WooCommerce
Send per product category emails to your WooCommerce customers to offer product recommendations, custom order confirmation emails, and more.
Add the ‘Ordered Products Categories ' condition once you select the 'Order Created' event.

Next, put the category name in the value field.

Hit 'Save' once you're done.
Under the If-Yes condition, add the ‘Send Email’ action.

Now, you can write your custom email for a specific product category.

Click on ‘Save’ when done.
This is how to send your customers WooCommerce emails by product category.
Method 3: Add a Product-Specific Message With Code
If you're comfortable in PHP, WooCommerce's email hooks give you exact control with zero plugin overhead. It hooks into the order email, loops through the line items, checks whether the target product (or variation or category) is present, and prints your content.
Drop these into a child theme's functions.php, a small site-specific plugin, or the Code Snippets plugin.
Trigger by product ID
This appends a message to the customer's email only when a specific product is in the order.
woocommerce_email_order_details fires inside the order email and hands you the order object, the $sent_to_admin flag, and the email object, so you can scope it to customer emails and to a single email type.
add_action( 'woocommerce_email_order_details', 'fk_product_specific_email_note', 20, 4 );
function fk_product_specific_email_note( $order, $sent_to_admin, $plain_text, $email ) {
// Only the customer's "Processing" email, not admin copies.
if ( $sent_to_admin || 'customer_processing_order' !== $email->id ) {
return;
}
$target_product_id = 1234; // Replace with your product ID.
foreach ( $order->get_items() as $item ) {
if ( (int) $item->get_product_id() === $target_product_id ) {
if ( $plain_text ) {
// Plain-text version of the email — no HTML tags.
echo "\nYour setup guide\n";
echo "Thanks for buying the Pro Course. Download your starter kit here: https://example.com/starter-kit\n";
} else {
echo '<div style="padding:16px;margin:16px 0;border:1px solid #e2e2e2;border-radius:6px;">';
echo '<h3 style="margin:0 0 8px;">Your setup guide</h3>';
echo '<p>Thanks for buying the Pro Course. Download your starter kit here: '
. '<a href="https://example.com/starter-kit">example.com/starter-kit</a></p>';
echo '</div>';
}
break; // Print once even if quantity > 1.
}
}
}Swap customer_processing_order for customer_completed_order, customer_on_hold_order, or customer_invoice depending on which email should carry the note.
Hooking into the wrong status is the number-one reason these snippets don't work (we've covered troubleshooting later in this article).
Trigger by variation, category, or order value
The same loop covers the fan-out cases people ask about variation, category, and order-value targeting:
add_action( 'woocommerce_email_order_details', 'fk_advanced_email_conditions', 20, 4 );
function fk_advanced_email_conditions( $order, $sent_to_admin, $plain_text, $email ) {
if ( $sent_to_admin || 'customer_completed_order' !== $email->id ) {
return;
}
$target_variation_id = 5678; // Specific variation.
$target_category_slug = 'fragile'; // Category slug.
$high_value_threshold = 200; // Order total in store currency.
$lines = array(); // Collect matched messages as plain strings.
foreach ( $order->get_items() as $item ) {
// By variation ID (returns 0 for simple products, so this self-skips).
if ( $item->get_variation_id() && (int) $item->get_variation_id() === $target_variation_id ) {
$lines[] = 'This variation ships with a 2-year extended warranty.';
}
// By product category.
if ( has_term( $target_category_slug, 'product_cat', $item->get_product_id() ) ) {
$lines[] = 'One or more items are fragile — please inspect on delivery.';
}
}
// By order value.
if ( (float) $order->get_total() >= $high_value_threshold ) {
$lines[] = 'As a VIP order, you qualify for priority support. Just reply to this email.';
}
// De-duplicate so shared conditions don't repeat.
$lines = array_unique( $lines );
if ( empty( $lines ) ) {
return;
}
if ( $plain_text ) {
echo "\n" . implode( "\n", $lines ) . "\n";
} else {
echo '<div style="padding:16px;margin:16px 0;background:#f7f7f7;border-radius:6px;">';
foreach ( $lines as $line ) {
echo '<p>' . esc_html( $line ) . '</p>';
}
echo '</div>';
}
}Use get_variation_id() for variable products (it should not be the parent product ID), has_term() against the product_cat taxonomy for categories, and collect matched messages in an array so multiple conditions don't print stacked boxes.
Both snippets also branch on $plain_text so the note renders cleanly in the plain-text copy of the email, not just the HTML version.
For attribute-based logic (pickup vs. delivery, say), this filter rewrites the "Additional content" block rather than appending a new one:
woocommerce_email_additional_content_customer_completed_order This method is best for developers who want the exact control. The only limits are that there is no UI, logic errors fail silently, and you own maintenance when WooCommerce updates its templates.
Send By Category vs. Variation vs. Single Product: Which Condition to Use?
People often target the wrong layer and wonder why the email misfires. Here's the quick guide:
- Single product ID: Use when exactly one SKU needs the message (example, a specific course or device). Most precise, most common.
- Variation ID: Use when only one option of a variable product requires it (example, the “XL” size ships with a different care note than “S”). Check get_variation_id(), not the parent product ID.
- Category: Use when a group shares the message (everything in Fragile, Downloadable, or Perishable). Saves you from re-tagging every new product individually.
- Order Value: Use for VIP or threshold-based perks rather than item identity.
In code, those are get_product_id(), get_variation_id(), has_term( …, 'product_cat', … ), and $order->get_total() respectively. In an automation builder or customizer, they're condition dropdowns.
Troubleshooting: Why Your Per-Product Email Isn't Sending
- Wrong order-status hook
The email is wired to Completed, but your orders sit in Processing (or vice versa). Confirm the actual status the order reaches and match the hook/trigger to it. This is the most common culprit.
- Condition mismatch
The code checks get_product_id() but the buyer purchased a variation; or the category slug is misspelled; or the rule targets the parent when it should target the variation. Add a temporary error_log() to see which branch runs.
- It's only the admin copy
Forgetting the $sent_to_admin guard can cause content to appear (or not) in the wrong recipient's email.
- Cron isn't firing
Delayed/automation emails depend on WP-Cron. On low-traffic sites, set up a real server cron so scheduled sends actually trigger.
- Conflicting plugins
Two email tools (a customizer plus an automation plugin) can collide. Deactivate non-essential plugins and retest, and switch to a default theme like Storefront to rule out theme conflicts.
- Deliverability, not logic
If the log shows the email was sent, but it never arrived, the problem is the spam filter. Go back to the deliverability checklist above.
- Outdated platform
An outdated WooCommerce or plugin version (pre-HPOS, for example) can break access to order data. Update everything and retest.
10 High-Converting Custom Per Product Email Ideas
Customizing WooCommerce emails for individual products lets you connect with customers personally, enhancing their shopping experience and boosting your brand’s reputation.
Below are detailed examples of the types of per-product emails you can send and how they can benefit your business.
1. Product usage tutorials
Some products need to be handled with care when first used.
That’s why, in such cases, you can send an email that educates the customer on how to unbox the item, set it up, and use the product effectively.
Other examples include table lamps, razors, and beard trimmers.
2. Review collections
Reviews and testimonials are a trust seal for prospective buyers.
According to Globe Newswire, 93% of buyers say reviews and testimonials are convincing in their buying decisions.
Set up a review-collection email sequence and ask what they like, what they don’t like, whether the product matches their expectations, and more.
3. Upsell and cross-sell recommendations
You can upsell and cross-sell your products to customers who recently purchased from your store.
For example, if someone has bought shoes, you can set up a product-recommendation email sequence to cross-sell shoe polish, socks, and other related items.
Customize these cross-selling emails per product by sending a dynamic discount coupon to incentivize their next purchase.
4. Styling or use-case tips
Show customers how to incorporate their new product into their lifestyle. Include visuals, such as photos or a video demonstrating the tips.
For example, share styling tips, such as "5 Ways to Wear Your New Jacket", for a clothing item.
This helps inspire creativity, build a stronger connection with your brand, and encourage customers to return to your store for more.
5. Maintenance and care instructions
This WooCommerce custom email per product helps customers care for their purchases to improve durability.
For example, send cleaning and polishing instructions for leather shoes. Provide frequently bought together items for the cleaning kits you sell.
This reduces product complaints and returns. Additionally, it positions your brand as thoughtful and customer-focused.
6. Exclusive offers or discounts
Reward customers with personalized incentives to encourage future purchases, boost sales, and build customer loyalty.
Let’s say a customer bought a premium blender; you can offer a 15% discount for smoothie recipe books or kitchen accessories.
7. Winback emails
If you sell consumable products, you must implement a WooCommerce custom per-product email sequence, as there is a high chance your customers will forget about the products and may need a push to buy from you again.
This is where a winback campaign can work wonders.
8. Milestone emails
Celebrate significant moments to keep your brand top of mind with your customers.
Let’s say a customer purchased a coffee machine 6 months back; send an email saying, “It’s been six months since you bought your coffee machine! Here are some exciting coffee recipes you might enjoy.”
This helps strengthen the relationship with your customers and encourages continued product use and potential repurchases.
9. Product recall or important notices
Ensure customers are aware of critical updates or product recalls.
For example, "We've identified a minor issue with the power adapter you recently purchased from us. Here's how we're resolving it".
This demonstrates responsibility and accountability. Plus, it protects your brand's reputation in the event of any product issue.
10. Personalized thank you emails
Express gratitude for their purchase with a personal touch. Include tips in your WooCommerce custom email per product for maximizing an item’s productivity.
For example, thank customers for purchasing your handmade candles and how they can bring warmth and relaxation to their homes.
Deliverability Guide for Custom Emails
A perfectly targeted email is useless in the spam folder. Few competing guides cover this, so it's worth doing right:
- Send via SMTP, not PHP mail: The default WordPress wp_mail() is unauthenticated and frequently flagged. Use an SMTP plugin connected to a real sending service (your host's relay, SendGrid, Brevo, Amazon SES, etc.).
- Authenticate your domain: Set up SPF, DKIM, and DMARC records so mailbox providers trust mail from your store.
- Use a real from-address on your domain: Sending as [email protected] rather than wordpress@server-hostname improves trust and reply handling.
- Log what you send: Install a mail-logging plugin to confirm that an email was actually generated and dispatched before blaming the inbox.
- Test against a seed inbox: Before going live, send to Gmail, Outlook, and Yahoo addresses and check placement. Keep image weight modest and always include a text fallback.
Check out our complete guide to fixing the WooCommerce email not sending issue.
Frequently Asked Questions
Yes, you can send a custom email per product for free. The code snippet (Method 3) is free, and several add-ons, including the free tiers of WC Custom Emails Per Product, Additional Custom Emails & Recipients, and Kadence, cover the basics.
Scheduling, visual design, and advanced conditions are usually paid.
Yes, this works for subscription, downloadable, and variable products. Trigger on the product type, the specific product ID, or the variation ID. Downloadable products are the classic use case (deliver the file link), and variable products are handled via the variation ID.
Yes, you can notify a supplier or a different admin when a specific product sells. Route the recipient by product either with an automation action that emails a custom address when the product condition matches, or with a plugin like Additional Custom Emails & Recipients that supports per-product recipients.
No, this won't break the default WooCommerce order emails. The append and code methods add to or run alongside the standard emails; the automation method sends a separate email entirely. Your default receipts keep working.
Editing the template (native settings, MailPoet, a customizer) changes the design or text for all orders. A per-product email changes the content or sending based on what was actually bought.
- Custom emails provide information specific to the product purchased, such as care guides, installation steps, or warranty coverage. This helps enhance customer satisfaction and reduce post-purchase support queries.
- Improve customer satisfaction and trust by offering instructional tutorials, troubleshooting guides, or direct links to support pages that show customers you care about their experience. This helps them trust your business and provides them with valuable, targeted information.
- Suggest related products that complement the customer's purchase, along with attractive, personalized offers to encourage repeat purchases.
- These emails provide consistent, relevant communication that keeps you top of mind with customers and encourages repeat business.
- Sending per-product emails with care instructions, warranties, and FAQs reassures customers about their purchase decision. For example, an email with assembly instructions and care tips will be helpful for high-ticket items like furniture.
- Tailored emails with product-specific content are more likely to resonate with customers, increasing the likelihood of repeat purchases.
Skyrocket Your Sales with WooCommerce Custom Emails Per Product!
Sending product-specific emails is a proven way to improve engagement, nurture relationships, and drive repeat sales.
By delivering tailored content, exclusive offers, and relevant follow-ups, you enhance the customer experience and create opportunities for upselling, cross-selling, and building long-term loyalty.
The three methods map cleanly to three needs: append a fixed note with a dedicated add-on, target precisely with a code snippet, or trigger a designed, scalable email with automation.
Match the method to your store: most stores need Method 1, and growing stores move to Method 2.
Make sure to run a test order and confirm deliverability before you go live.
If you’re ready to send standalone, product-triggered emails with conditions and timing rather than a single appended line, FunnelKit Automations handles it without code.

Editorial Team
July 3, 2026Discover how a canceled order doesn't have to mean a lost customer, and how the right WooCommerce canceled order email can turn it into a second chance. WooCommerce canceled order...

Editorial Team
July 3, 2026Choosing the right WooCommerce HubSpot integration is harder than it looks because HubSpot has no first-party WooCommerce sync and every third-party option handles data differently. Pick the wrong connector and...

Editorial Team
June 30, 2026WooCommerce post-purchase emails are automated messages sent to customers after they complete an order. They cover everything from order confirmations and shipping updates to review requests, product tips, and next-purchase...






