Conservar el idioma en el trabajo en segundo plano de WooCommerce
Las renovaciones programadas, las notificaciones diferidas, las importaciones asíncronas y otras tareas en segundo plano no disponen de una URL de visitante a partir de la cual deducir un idioma. Deben llevar un contexto de pedido, de cliente o de configuración regional explícita.
Trabajo basado en pedidos
En el caso de un correo electrónico relacionado con un pedido o una suscripción, POM Translate resuelve primero la configuración regional almacenada del pedido. Los pedidos nuevos clásicos y de la Store API conservan la configuración regional activa en el momento del pago, de modo que una tarea posterior puede generar el contenido del cliente en el idioma de la compra.
Los pedidos más antiguos recurren a alternativas sucesivas: la configuración regional del cliente, la configuración regional actual de POM y la configuración regional base. Para obtener un resultado predecible en segundo plano, rellena el contexto del pedido en lugar de depender de la configuración regional que esté activa en ese momento en el cron.
Integraciones personalizadas en segundo plano
Una integración compatible debe:
- Cargar el pedido o el cliente al que pertenece la operación.
- Resolver una configuración regional habilitada.
- Ejecutar únicamente la devolución de llamada de renderizado dentro de
pom_translate_with_locale(). - Traducir plantillas estables antes de la combinación.
- Insertar después los datos dinámicos del cliente y del pedido.
- Dejar que el contenedor de configuración regional restaure el estado anterior.
No establezcas una configuración regional global y la dejes activa para el resto de un trabajador de cola. No registres mensajes renderizados que contengan datos del cliente o del pedido.
Sincronización de catálogo
Los guardados fiables de productos y taxonomías realizados por importaciones, comandos de CLI o sincronizaciones programadas pueden actualizar las cadenas de origen de POM Translate sin necesidad de un administrador con sesión iniciada. El importador debe seguir usando las API normales de persistencia de WordPress y WooCommerce.
Después de una sincronización amplia, inspecciona las traducciones pendientes en busca de textos de productos o términos modificados. Las actualizaciones de origen pueden requerir revisión incluso cuando los ID de los productos no cambian.
Verificar
Ejecuta una operación en segundo plano para dos pedidos con configuraciones regionales almacenadas distintas en el mismo trabajador o ciclo de cron. Comprueba lo siguiente:
- cada resultado usa su propia configuración regional de pedido;
- las etiquetas de productos y metadatos se traducen correctamente;
- no hay fugas de configuración regional hacia el siguiente trabajo;
- el texto específico del cliente no se añade a la lista de cadenas registradas;
- los reintentos no crean correos electrónicos ni pedidos duplicados.
En el caso de los correos electrónicos de extensiones programadas, consulta también Subscriptions and follow-up email.