Si recibes el siguiente mensaje, es probable que tu tienda no funcione correctamente:
Tu sitio parece estar bloqueando la interfaz ajax de WordPress. Esto puede causar problemas en tu tienda.
El archivo
admin-ajax.php es utilizado por Easy Digital Downloads, y muchos otros plugins, para realizar acciones comunes en tu tienda, como aplicar un código de descuento, validar el pago, completar una compra. Es un archivo muy importante. Si es inaccesible, es muy probable que tu tienda no se comporte como se espera.
Utiliza las sugerencias a continuación para ayudarte a rastrear el problema y resolverlo.
Conflictos de Plugins
Algunos plugins son conocidos por bloquear intencionalmente el acceso a
admin-ajax.php. Los siguientes tipos de plugin suelen ser los responsables:
- Plugins de seguridad. Estos plugins a menudo tienen una configuración que deshabilita admin-ajax.php, o una configuración similar para bloquear el acceso a archivos de administración.
- Plugins que deshabilitan el acceso a /wp-admin/ para no administradores.
- Plugins de minificación. Estos plugins prometen mejoras de rendimiento al reducir el tamaño de los archivos javascript (y otros). Este proceso a menudo rompe el javascript en Easy Digital Downloads que es responsable de comunicarse con admin-ajax.php
- Plugins de caché. Ocasionalmente, los plugins de caché pueden causar problemas con admin-ajax.php al romper el javascript que crea las solicitudes ajax o simplemente al hacer admin-ajax.php inaccesible.
Si ajax no funciona en tu sitio y tienes algún plugin que coincida con las descripciones anteriores, intenta desactivar los plugins y luego prueba para ver si
admin-ajax.php se vuelve accesible nuevamente. Si es así, es posible que aún puedas usar el plugin, solo necesitarás encontrar la configuración problemática en el plugin y deshabilitarla.
Firewalls del Host
Ocasionalmente, las empresas de hosting configuran un firewall en tu sitio que está destinado a protegerlo, pero que también tiene el efecto adverso de bloquear el acceso a
admin-ajax.php. Si tienes problemas con ajax, verifica si tu host tiene un firewall y desactívalo si es así. Si ajax comienza a funcionar después de desactivar el firewall, has encontrado al culpable. Si ajax sigue siendo inaccesible después de desactivar el firewall, generalmente puedes volver a habilitarlo de forma segura.
Reglas en tu archivo .htaccess
El archivo
.htaccess utilizado en servidores apache a veces puede incluir reglas especiales diseñadas para proteger tu sitio de ataques. Ocasionalmente, estas reglas se aplican de manera un poco general y deshabilitan involuntariamente el acceso a admin-ajax.php. Si tu ajax no funciona, verifica qué reglas contiene tu archivo .htaccess. Si hay alguna regla más allá de las que se muestran a continuación, elimínala y ve si el ajax vuelve a funcionar.
Tu archivo
.htaccess generalmente contendrá reglas que se ven así (estas son perfectamente seguras y normales):
# BEGIN WordPressRewriteEngine On RewriteBase / RewriteRule ^index.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] # END WordPress
Problemas entre dominios
admin-ajax.php debe ejecutarse en el mismo dominio desde el que se llama. Ejemplo: si tu sitio es
https://www.example.com y intentas llamar a https://example.com/wp-admin/admin-ajax.php no funcionará. Nota el www en la primera URL y la ausencia de www en la segunda URL.
Esto también se aplica a una discrepancia SSL. https://www.example.com/wp-admin/admin-ajax.php no puede llamar a https://www.example.com/wp-admin/admin-ajax.php. Nota el https en la primera URL y la ausencia de https en la segunda.
