Esse erro pode acontecer na hora de finalizar um pedido no WooCommerce, pois os métodos de pagamento irão retornar um array
que será convertido para JSON
, entretanto por padrão se tiver qualquer erro ou alerta do PHP quando isso acontece, irá retornar nosso amiguinho SyntaxError: Unexpected token
.
Antes de mais nada, se o seu servidor esta em produção não deveria exibir qualquer erro na tela e apenas em logs, já que isso sendo exibido pode ajudar alguém hackear o seu site.
Para desativar você pode adicionar seguinte código ao seu wp-config.php
:
https://gist.github.com/claudiosanches/bfe288c747e5851eedbf
Já o seu site em um ambiente de testes/desenvolvimento é o local perfeito para deixar o debug ativado e assim conseguir corrigir esse tipo de erro.
No codex do WordPress é possível encontrar um exemplo de como configurar o seu wp-config.php
para facilitar a depuração de erros em Debugging in WordPress.
Para descobrir o que exatamente causando esse erro basta abrir o console do seu navegador e ir na aba “Network”, também é possível filtrar por “XHR” e ver as requisições feitas:
Na lista você vai poder encontrar uma requisição para ?wc-ajax=checkout
e nela você deve olhar a resposta como no exemplo:
Veja o que erro na imagem aparece antes de {"result":...
.
E pronto, agora vocês sabem que arquivo e em qual linha esta causando o erro e corrigir.
Esta publicação foi inspirada no post do meu amigo Mike Jolley em Debugging “unexpected token” in WooCommerce 2.4+.