Customer Failed Order Email Missing From WooCommerce Email Customizer?

If WooCommerce has Customer Failed Order enabled but your email customizer only lets you edit or preview the shop-owner Failed Order email, the problem may not be your WooCommerce email settings at all.

WooCommerce now has two different Failed Order notifications:

  • an administrative Failed Order email sent to the store recipient,
  • a Customer Failed Order email sent to the customer after an unsuccessful payment.

WooCommerce’s current documentation explicitly describes both notifications under Failed Order.

Internally, however, they are separate email classes with different IDs.

The customer notification uses:

customer_failed_order

while the older administrative notification uses:

failed_order

WooCommerce’s current source confirms that WC_Email_Customer_Failed_Order has the ID customer_failed_order, is marked as a customer email, and uses its own customer-failed-order.php template.

That distinction is the key to this issue.

Why the Customer Failed Order Email May Be Missing

WooCommerce did not always send a failed-payment email directly to customers.

The customer notification was added to WooCommerce in the 9.5 development cycle. WooCommerce described the change as a new customer notification sent when an order payment fails.

Older email-customizer plugins therefore knew only about:

failed_order

which was the store-owner notification.

If the email customizer has not been updated to recognize:

customer_failed_order

you can end up with exactly this behavior:

WooCommerce Settings:

Failed Order — admin
Disabled

Customer Failed Order
Enabled

but inside the customizer:

Failed Order
✓ available

Customer Failed Order
✗ missing

and previewing Failed Order displays the store-owner version.

This Was Specifically Added to ThemeHigh Email Customizer

If the site uses Email Customizer for WooCommerce by ThemeHigh, there is an especially strong version clue.

ThemeHigh’s changelog for version 2.6.5 says that it added compatibility for the new Customer Failed Order email template.

That means versions before 2.6.5 may not recognize the new WooCommerce customer email correctly.

As of August 2026, WordPress.org lists ThemeHigh Email Customizer 2.7.0 as the current public release.

So the first thing to check is:

Plugins
→ Installed Plugins
→ Email Customizer for WooCommerce

If the version is below:

2.6.5

update it.

That is much more relevant than disabling the WooCommerce Failed Order email or changing SMTP settings.

Why the Preview Shows the Shop Owner Email

This symptom is also consistent with the two separate WooCommerce email IDs.

The customizer may be previewing:

failed_order

instead of:

customer_failed_order

The first one is the administrative email.

The second is the customer notification.

WooCommerce’s customer email class explicitly identifies itself as:

$this->id = 'customer_failed_order';

and:

$this->customer_email = true;

So if a preview contains admin-oriented content or behaves like the shop-owner Failed Order notification, the customizer is almost certainly loading the wrong WooCommerce email object.

The Customer Email Is a Real WooCommerce Core Email

It is worth confirming that this is not simply another label for the same notification.

The current WooCommerce source defines:

class WC_Email_Customer_Failed_Order extends WC_Email

with:

$this->id = 'customer_failed_order';
$this->template_html = 'emails/customer-failed-order.php';

and the recipient is obtained from:

$this->object->get_billing_email();

Its default subject is equivalent to:

Your order at {site_title} was unsuccessful

and its heading tells the customer that the order was unsuccessful.

That is fundamentally different from the merchant Failed Order notification.

Check Whether WooCommerce Registered Both Emails

You can verify this without depending on the customizer.

If WP-CLI is available, run:

wp eval '
$emails = WC()->mailer()->get_emails();

foreach ( $emails as $email ) {
	echo $email->id . "\t" .
		get_class( $email ) . "\t" .
		( $email->is_enabled() ? "enabled" : "disabled" ) .
		PHP_EOL;
}
'

On a WooCommerce version supporting the customer Failed Order email, you should see entries including:

failed_order
customer_failed_order
customer_on_hold_order
customer_processing_order
customer_completed_order

If you see:

customer_failed_order    enabled

then WooCommerce itself knows about the customer notification.

If ThemeHigh’s dropdown still shows only:

Failed Order

the problem is in the email-customizer integration rather than WooCommerce registration.

Check WooCommerce Email Settings Separately

Go to:

WooCommerce
→ Settings
→ Emails

Confirm the customer notification is enabled.

WooCommerce currently sends two notifications for failed orders: one to the configured store recipient and another to the customer explaining that payment was unsuccessful.

The admin notification does not need to be enabled simply to make the customer notification available.

So this configuration is valid:

Admin Failed Order:
Disabled

Customer Failed Order:
Enabled

Do not enable the admin email merely because the customizer only displays that version.

That would hide the real compatibility problem.

Update the Email Customizer

For ThemeHigh Email Customizer, use at least:

2.6.5

because that is the version whose changelog explicitly added compatibility for the Customer Failed Order template.

Prefer the current supported release rather than deliberately installing 2.6.5.

After updating:

  1. reload wp-admin,
  2. clear any admin/browser cache,
  3. open Email Customizer → Templates,
  4. reopen the email mapping or preview selector,
  5. look for Customer Failed Order,
  6. preview it using an existing failed order.

ThemeHigh’s plugin documentation says its test-email workflow lets you choose both an order and an email status from dropdowns, so the Customer Failed Order integration needs to be recognized in those controls as well.

Do Not Confuse “Failed Order” With “Customer Failed Order”

This naming can be confusing because WooCommerce’s Settings screen presents the concept under Failed Order, while integrations often work with the actual internal IDs.

Think of them like this:

failed_order
↓
Store owner / admin notification

and:

customer_failed_order
↓
Customer payment-failure notification

They may have similar names in an interface, but they are not interchangeable.

A customizer that only supports failed_order cannot automatically assume that it should customize customer_failed_order.

Verify the Template Files

WooCommerce’s customer email uses:

woocommerce/templates/emails/customer-failed-order.php

for HTML and:

woocommerce/templates/emails/plain/customer-failed-order.php

for plain text.

If the customizer is current but still fails to recognize the customer email, confirm that the WooCommerce installation itself is complete.

Do not edit the files directly in:

/wp-content/plugins/woocommerce/templates/

because WooCommerce updates will overwrite those changes.

Check for Theme Template Overrides

Go to:

WooCommerce
→ Status
→ System Status

and inspect the Templates section.

A theme might override:

your-theme/woocommerce/emails/customer-failed-order.php

This would not normally remove the email from ThemeHigh’s dropdown, but it can affect what the real customer receives after you resolve the customizer issue.

If the override is outdated, compare it with the current WooCommerce template before modifying anything.

Test the Correct Email With a Real Failed Order

The preview is useful, but a real WooCommerce trigger is the final test.

Create a staging/test order with a valid customer email address.

Then move the order into the state required to produce a Failed Order notification.

WooCommerce’s customer email class listens for the Failed Order notification event and sends to the order’s billing email.

Confirm that the received message is customer-oriented.

The expected customer subject is similar to:

Your order at Example Store was unsuccessful

not a merchant notification telling the shop administrator that an order failed.

If the Customer Email Sends but the Customizer Still Cannot Edit It

This is an important distinction.

You may find:

Actual Customer Failed Order email
✓ sends correctly

ThemeHigh editor
✗ does not list Customer Failed Order

That means WooCommerce itself is working.

The issue is limited to ThemeHigh’s template discovery, mapping, or preview system.

At that point:

  1. confirm ThemeHigh is 2.6.5 or newer,
  2. update to the current release,
  3. test with only WooCommerce and the email customizer active on staging,
  4. check for JavaScript/PHP errors in the template builder,
  5. send ThemeHigh support the registered WooCommerce email IDs.

Do not troubleshoot SMTP first if the actual issue is that a template is missing from the builder dropdown.

If customer_failed_order Is Missing From WooCommerce Completely

If the WP-CLI test does not return:

customer_failed_order

first check the WooCommerce version.

The customer failed-payment notification was introduced after older WooCommerce releases that only notified merchants about failed orders.

Update WooCommerce using your normal staging and backup process.

Do not manually instantiate:

WC_Email_Customer_Failed_Order

to compensate for an outdated WooCommerce installation.

A Developer-Level Check

You can also temporarily inspect WooCommerce’s registered email objects in PHP:

add_action( 'admin_init', function () {

	if ( ! current_user_can( 'manage_woocommerce' ) ) {
		return;
	}

	$emails = WC()->mailer()->get_emails();

	foreach ( $emails as $email ) {
		error_log(
			sprintf(
				'Woo email: %s | %s',
				$email->id,
				get_class( $email )
			)
		);
	}
} );

Then check:

/wp-content/debug.log

You should find:

Woo email: failed_order
Woo email: customer_failed_order

Remove the debugging snippet after testing.

Why Enabling the Shop Owner Failed Email Is Not the Fix

Suppose the store configuration is intentionally:

Admin Failed Order = OFF
Customer Failed Order = ON

That is perfectly reasonable.

Enabling:

Admin Failed Order = ON

may make the customizer’s existing Failed Order entry appear to work, but it does not add support for:

customer_failed_order

It simply activates the wrong notification.

The goal is to make the customizer recognize the customer-specific WooCommerce email class.

Most Likely Fix

For a store using ThemeHigh Email Customizer where:

Customer On Hold
✓ available

Processing Order
✓ available

Completed Order
✓ available

Customer Failed Order
✗ missing

Failed Order
✓ shows shop-owner version

the first thing I would check is the ThemeHigh version.

ThemeHigh explicitly added Customer Failed Order compatibility in:

Version 2.6.5

If an older build is installed, updating is the most direct fix.

If the current 2.7.0 build is already installed and the problem remains, then it becomes a reproducible ThemeHigh integration issue rather than expected behavior.

What to Send ThemeHigh Support

Provide:

  • WooCommerce version
  • ThemeHigh Email Customizer version
  • WordPress version
  • screenshot of WooCommerce → Settings → Emails showing Customer Failed Order enabled
  • screenshot of the ThemeHigh email dropdown where it is missing
  • confirmation that Failed Order previews the shop-owner version
  • output showing customer_failed_order registered in WC()->mailer()->get_emails()
  • whether the real customer email is successfully sent

The most useful summary is:

WooCommerce registers customer_failed_order correctly,
but ThemeHigh only exposes failed_order in the builder/preview.

That clearly separates a WooCommerce delivery issue from a customizer compatibility issue.

How to Verify the Fix

After updating or fixing the integration:

  1. Open Email Customizer → Templates.
  2. Open or create the customer Failed Order template.
  3. Confirm Customer Failed Order is available in the email mapping.
  4. Open Preview/Test Email.
  5. Choose an actual failed order.
  6. Select the customer Failed Order notification.
  7. Confirm the preview is customer-facing.
  8. Send a test email.
  9. Trigger a real failed-order notification on staging.
  10. Confirm the customer’s received email matches the customized design.

The final result should be:

Failed Order
→ shop owner/admin version

Customer Failed Order
→ customer version

with each treated as a separate WooCommerce notification.

About the author

Tahrim Naziat

WordPress and Server Troubleshooting Specialist

Tahrim Naziat is a senior WordPress and JavaScript developer with more than 14 years of experience specializing in WordPress troubleshooting, WooCommerce, PHP compatibility, plugin conflicts, malware cleanup, performance optimization, Nginx, Redis, and production server issues. He documents practical solutions based on real WordPress debugging, technical investigations, and client projects.

Leave a Comment