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

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.
- Vá para WPML -> Tradução de Strings
- Pesquise por ‘order-received’ ou navegue até o domínio ‘WooCommerce Endpoints’ e encontre a string ‘order-received’.
- Expanda a seção ‘Traduções’ para a string ‘order-received’
- Desmarque a caixa de seleção “A tradução está concluída” e clique em “Salvar” para todos os idiomas

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