WPML
Status
Resolvido
Relatado para
WPML String Translation 2.4.2
Resolvido em
WPML String Translation 2.4.2.1

Visão geral do problema

Ao usar o WPML Multilingual & Multicurrency for WooCommerce 3.8.6 com o WPML 3.5.3, alguns erros são exibidos (ou registrados) na página de confirmação do pedido, após fazer um pedido em um idioma secundário.

A mensagem de erro é semelhante à mostrada abaixo:

PHP Notice: Undefined index: order-received in ../wp-content/plugins/woocommerce-multilingual/inc/class-wcml-endpoints.php on line 155

Além da mensagem de erro, em vez da página “Pedido recebido” com os detalhes do pedido, é exibida aos usuários a página “Checkout” traduzida sem nenhum conteúdo.

Página "Checkout" vazia
Página “Checkout” vazia em alemão

Apesar de os pedidos serem concluídos e os e-mails de notificação serem enviados, os clientes podem ficar confusos, pensar que o pedido não foi processado e enviar pedidos duplicados.

Descobrimos que isso se deve a uma alteração no WPML Tradução de Strings 2.4.2. Uma correção já está a caminho, mas precisamos testá-la bem antes de lançar uma atualização.

Solução alternativa

Uma maneira de corrigir isso é usar a versão beta 2.4.2.1-b1 do WPML Tradução de Strings. Ela resolve apenas este problema específico e não deve ter impacto em mais nada. No entanto, é uma versão beta, portanto recomenda-se cautela: faça um backup do seu site e, de preferência, teste-a primeiro em um ambiente de não produção.

Há outra solução alternativa possível que você pode usar temporariamente e que não deve afetar muito a experiência do usuário. Essa solução alternativa envolve marcar a string correspondente ao endpoint ‘order-received’ como não traduzida. Você não precisa excluir a string, basta desmarcar a caixa de seleção “A tradução está concluída”. Aqui estão os passos para um caso em que você tem o inglês como idioma padrão. Os passos são idênticos se o seu site usar um idioma padrão diferente.


  1. Vá para WPML -> Tradução de Strings

  2. Pesquise por ‘order-received’ ou navegue até o domínio ‘WooCommerce Endpoints’ e encontre a string ‘order-received’.

  3. Expanda a seção ‘Traduções’ para a string ‘order-received’

  4. Desmarque a caixa de seleção “A tradução está concluída” e clique em “Salvar” para todos os idiomas
Marque o endpoint 'order-received' como não traduzido
Marque o endpoint ‘order-received’ como não traduzido

Depois disso, sua página “Order Received” ainda será traduzida. Apenas a string do endpoint na URL não será traduzida.

Todos os problemas conhecidos →