Si recibe el siguiente mensaje, es probable que su tienda no funcione correctamente:
Su sitio parece estar bloqueando la interfaz ajax de WordPress. Esto puede causar problemas en su tienda.
El archivo
admin-ajax.php es utilizado por Easy Digital Downloads, y muchos otros plugins, para realizar acciones comunes en su 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 su tienda no se comporte como se espera.
Utilice las sugerencias a continuación para ayudar a rastrear el problema y resolverlo.
Conflictos de Plugins
Algunos plugins son conocidos por bloquear intencionadamente el acceso a
admin-ajax.php. Los siguientes tipos de plugins 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 los archivos de administración.
- Plugins que deshabilitan el acceso a /wp-admin/ para los no administradores.
- Plugins de minificación. Estos plugins presumen de 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 su sitio y tiene algún plugin que coincida con las descripciones anteriores, intente desactivar los plugins y luego pruebe para ver si
admin-ajax.php se vuelve accesible nuevamente. Si es así, es posible que aún pueda usar el plugin, solo necesitará encontrar la configuración problemática en el plugin y deshabilitarla.
Firewalls del Host
Ocasionalmente, las empresas de hosting configuran un firewall en su sitio que está destinado a proteger su sitio, pero que también tiene el efecto adverso de bloquear el acceso a
admin-ajax.php. Si tiene problemas con ajax, verifique si su host tiene un firewall y desactívelo si es así. Si ajax comienza a funcionar después de desactivar el firewall, ha encontrado al culpable. Si ajax sigue siendo inaccesible después de desactivar el firewall, generalmente puede volver a habilitarlo de forma segura.
Reglas en su archivo .htaccess
El archivo
.htaccess utilizado en los servidores Apache a veces puede incluir reglas especiales diseñadas para proteger su sitio de ataques. Ocasionalmente, estas reglas se aplican de forma un poco general y deshabilitan involuntariamente el acceso a admin-ajax.php. Si su ajax no funciona, verifique qué reglas contiene su archivo .htaccess. Si hay alguna regla más allá de las que se muestran a continuación, elimínela y vea si el ajax vuelve a funcionar.
Su 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.
