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:

  1. Cargar el pedido o el cliente al que pertenece la operación.
  2. Resolver una configuración regional habilitada.
  3. Ejecutar únicamente la devolución de llamada de renderizado dentro de pom_translate_with_locale().
  4. Traducir plantillas estables antes de la combinación.
  5. Insertar después los datos dinámicos del cliente y del pedido.
  6. 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.