Enviar un correo electrónico personalizado en el idioma previsto

El trabajo de correo electrónico personalizado suele ejecutarse después de la solicitud original del navegador. Almacena un locale explícito junto con el objeto de negocio o el trabajo en cola en lugar de detectarlo más tarde desde el worker.

Registrar texto de plantilla estable

Registra el asunto de la plantilla, el encabezado y las etiquetas de cuerpo estables con nombres duraderos:

pom_translate_register_string( 'acme.email.subject', 'Your request is ready' );

Mantén los nombres de los destinatarios, los números de solicitud, las notas privadas y otros datos dinámicos como marcadores de posición escapados en tiempo de ejecución, en lugar de cadenas registradas.

Renderizar bajo un locale temporal

$message = pom_translate_with_locale(
    $recipient_locale,
    static function () use ( $post_id ): array {
        return array(
            'subject' => pom_translate__( 'Your request is ready' ),
            'title'   => pom_translate_get_post_title( $post_id ),
            'url'     => pom_translate_get_localized_url( get_permalink( $post_id ) ),
        );
    }
);

Construye el asunto, el cuerpo, los enlaces, las fechas y los adjuntos completos dentro del callback. Después restaura el estado de locale de POM Translate y de WordPress.

Verificar la entrega

Pon en cola dos mensajes para locales diferentes y procésalos en un único worker. Confirma que el segundo no hereda las traducciones ni los formatos de fecha del primer destinatario. Prueba las traducciones que faltan, los datos de cliente escapados, los enlaces localizados, las variantes HTML y de texto plano, y el comportamiento de reintento.

Para el correo electrónico transaccional de WooCommerce, prefiere su locale de pedido almacenado y su flujo de trabajo de correo gestionado en lugar de duplicar ese sistema de contexto.