Se você receber a seguinte mensagem, é provável que sua loja não funcione corretamente:
Seu site parece estar bloqueando a interface ajax do WordPress. Isso pode causar problemas em sua loja.
O arquivo
admin-ajax.php é usado pelo Easy Digital Downloads, e muitos outros plugins, para executar ações comuns em sua loja, como aplicar um código de desconto, validar o checkout, concluir uma compra. É um arquivo muito importante. Se ele estiver inacessível, é muito provável que sua loja não se comporte como esperado.
Use as sugestões abaixo para ajudar a rastrear o problema e resolvê-lo.
Conflitos de Plugins
Alguns plugins são conhecidos por bloquear intencionalmente o acesso ao
admin-ajax.php. Os seguintes tipos de plugin são frequentemente responsáveis:
- Plugins de segurança. Esses plugins geralmente têm uma configuração que desabilita o admin-ajax.php, ou uma configuração semelhante para bloquear o acesso a arquivos de administração.
- Plugins que desabilitam o acesso a /wp-admin/ para não administradores.
- Plugins de minificação. Esses plugins prometem melhorias de desempenho, encolhendo o tamanho dos arquivos javascript (e outros). Esse processo muitas vezes quebra o javascript no Easy Digital Downloads que é responsável pela comunicação com o admin-ajax.php
- Plugins de cache. Ocasionalmente, plugins de cache podem causar problemas com o admin-ajax.php quebrando o javascript que cria as requisições ajax ou simplesmente tornando o admin-ajax.php inacessível.
Se o ajax não estiver funcionando em seu site e você tiver algum plugin que corresponda às descrições acima, tente desativar os plugins e, em seguida, teste para ver se o
admin-ajax.php se torna acessível novamente. Se sim, você ainda poderá usar o plugin, apenas precisará encontrar a configuração problemática no plugin e desativá-la.
Firewalls de Hospedagem
Ocasionalmente, as empresas de hospedagem configurarão um firewall em seu site que se destina a proteger seu site, mas que também tem o efeito adverso de bloquear o acesso ao
admin-ajax.php. Se você estiver tendo problemas com ajax, verifique se seu host possui um firewall e desative-o se for o caso. Se o ajax começar a funcionar após desativar o firewall, você encontrou o culpado. Se o ajax ainda estiver inacessível após desativar o firewall, você geralmente pode reativá-lo com segurança.
Regras em seu arquivo .htaccess
O arquivo
.htaccess usado em servidores apache pode, às vezes, incluir regras especiais projetadas para proteger seu site contra ataques. Ocasionalmente, essas regras são aplicadas um pouco genericamente e desativam involuntariamente o acesso ao admin-ajax.php. Se o seu ajax não estiver funcionando, verifique quais regras seu arquivo .htaccess contém. Se houver alguma regra além das mostradas abaixo, remova-as e veja se o ajax volta a funcionar.
Seu arquivo
.htaccess geralmente conterá regras que se parecem com isto (estas são perfeitamente seguras e normais):
# BEGIN WordPressRewriteEngine On RewriteBase / RewriteRule ^index.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] # END WordPress
Problemas entre Domínios
admin-ajax.php deve ser executado no mesmo domínio de onde é chamado. Exemplo: se o seu site for
https://www.example.com e você tentar chamar https://example.com/wp-admin/admin-ajax.php, não funcionará. Note o www no primeiro URL e a ausência de www no segundo URL.
Isso também se aplica a uma incompatibilidade de SSL. https://www.example.com/wp-admin/admin-ajax.php não pode chamar https://www.example.com/wp-admin/admin-ajax.php. Note o https no primeiro URL e a ausência de https no segundo.
