Understand customer and visitor language
POM Translate uses request context while a customer browses and stores a separate locale snapshot when an order is created. A customer's current WordPress profile locale is not always the language of an earlier purchase.
During the storefront request
Cart, checkout, WC AJAX, and Store API output resolve a locale from the strongest available request context. Explicit language parameters or headers take priority, followed by prefixed routes and the stored visitor or user preference.
This request locale controls translated product text, form labels, fragments, and supported API payload fields. It is restored after the WooCommerce request finishes so one operation cannot change later unrelated processing.
At checkout
Classic checkout and Store API checkout save the normalized active locale as the order's purchase-language context. This is the durable record of the language used for that purchase.
The value is a WordPress locale such as es_ES, not merely a URL prefix. If POM Translate cannot normalize the current language, it falls back to the configured base locale.
After purchase
Order-related rendering uses the stored order locale first. For older orders without the snapshot, POM Translate can fall back to the customer's WordPress locale, then the current POM locale, and finally the base locale.
Changing a user's profile locale after checkout should not change emails for an order that already has a stored purchase language.
Verification
- Place one classic checkout order in a target language.
- Place one block checkout order in the same language if Blocks are supported.
- Change the current administration language.
- Change the test customer's WordPress profile locale when applicable.
- Preview or send a supported customer email for each order.
- Confirm both messages still use the language selected at checkout.
The stored purchase language is rendering context. It does not translate or duplicate operational order data.
See Orders and language for order output and Email language context for email precedence.