- Estado
- Resuelto
- Notificado para
- WPML String Translation 2.4.2
- Resuelto en
- WPML String Translation 2.4.2.1
Resumen del problema
Al usar WPML Multilingual & Multicurrency for WooCommerce 3.8.6 con WPML 3.5.3, se muestran (o registran) algunos errores en la página de confirmación del pedido, después de realizar un pedido en un idioma secundario.
El mensaje de error es similar al siguiente:
PHP Notice: Undefined index: order-received in ../wp-content/plugins/woocommerce-multilingual/inc/class-wcml-endpoints.php on line 155
Además del mensaje de error, en lugar de la página «Pedido recibido» con los detalles del pedido, a los usuarios se les muestra la página traducida de «Finalizar compra» sin ningún contenido.

A pesar de que los pedidos se completan y se envían los correos electrónicos de notificación, los clientes podrían confundirse, pensar que el pedido no se procesó y enviar pedidos duplicados.
Hemos descubierto que esto se debe a un cambio en WPML Traducción de cadenas 2.4.2. Ya hay una solución en camino, pero necesitamos probarla bien antes de publicar una actualización.
Solución alternativa
Una forma de solucionar esto es usar la versión beta 2.4.2.1-b1 de WPML Traducción de cadenas. Solo resuelve este problema en particular y no debería tener impacto en nada más. Sin embargo, es una versión beta, por lo que se recomienda precaución: haga una copia de seguridad de su sitio y, preferiblemente, pruébela primero en un entorno que no sea de producción.
Existe otra posible solución alternativa que puede usar temporalmente y que no debería afectar demasiado la experiencia del usuario. Esta solución alternativa consiste en marcar la cadena correspondiente al endpoint «order-received» como no traducible. No es necesario eliminar la cadena, solo desmarcar la casilla «La traducción se ha completado». Estos son los pasos para un caso en el que tiene el inglés como idioma predeterminado. Los pasos son idénticos si su sitio usa un idioma predeterminado diferente.
- Vaya a WPML -> Traducción de cadenas
- Busque «order-received» o navegue hasta el dominio «WooCommerce Endpoints» y encuentre la cadena «order-received».
- Expanda la sección «Traducciones» para la cadena «order-received»
- Desmarque la casilla «La traducción se ha completado» y haga clic en «Guardar» para todos los idiomas

Después de esto, su página «Pedido recibido» seguirá estando traducida. Simplemente, la cadena del endpoint en la URL no se traducirá.