Translate subscription and follow-up emails

WooCommerce extensions can register their own email classes. POM Translate can list and manage them when they participate in the active WooCommerce mailer and provide the normal email fields and order or customer context.

Subscription emails

For renewal and subscription messages:

  1. Confirm the extension email appears under Translations → Other translations → WooCommerce emails.
  2. Select the exact template; duplicate names are marked Admin or Customer.
  3. Translate its subject, heading, and additional content.
  4. Preserve all extension-defined placeholders.
  5. Preview using an order related to the subscription.
  6. Test the real scheduled or manual renewal path on staging.

The email must expose an order or customer object from which POM Translate can resolve a locale. A purchase language stored with the order is preferred.

Follow-up systems

A follow-up plugin may send through a WooCommerce email class or through generic wp_mail().

  • A registered WooCommerce email can use the managed workspace and runtime locale flow.
  • A generic mail call is not translated automatically because the recipient language is unknown.

Custom systems should keep stable pre-merge templates, resolve the recipient locale, translate those templates, and render them inside pom_translate_with_locale(). Dynamic customer and order values should be merged only after the stable template is selected.

Extension boundaries

Gateway messages and common PDF invoice or packing-slip templates are excluded by default. They retain their extension's language lifecycle even if they look like WooCommerce emails.

An extension can also use unusual IDs, placeholder syntax, template loading, or delivery triggers. Test its actual runtime behavior rather than assuming that appearing in the selector guarantees complete body integration.

Verification

Schedule two test messages for orders with different locales. Confirm each message uses its own locale, retains placeholders, translates products and metadata, and does not affect the following job.

See Background jobs for locale isolation in delayed queues.