WPML
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.

Página de «Finalizar compra» vacía
Página de «Finalizar compra» vacía en alemán

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.


  1. Vaya a WPML -> Traducción de cadenas

  2. Busque «order-received» o navegue hasta el dominio «WooCommerce Endpoints» y encuentre la cadena «order-received».

  3. Expanda la sección «Traducciones» para la cadena «order-received»

  4. Desmarque la casilla «La traducción se ha completado» y haga clic en «Guardar» para todos los idiomas
Marcar el endpoint «order-received» como no traducido
Marcar el endpoint «order-received» como no traducido

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

Todos los problemas conocidos →