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
:
define( 'WP_DEBUG', false ); | |
define( 'WP_DEBUG_DISPLAY', false ); | |
@ini_set( 'display_errors', 0 ); |
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+.