Se ricevi il seguente messaggio, è probabile che il tuo negozio non funzioni correttamente:
Il tuo sito sembra bloccare l'interfaccia ajax di WordPress. Ciò potrebbe causare problemi al tuo negozio.
Il file
admin-ajax.php viene utilizzato da Easy Digital Downloads e da molti altri plugin per eseguire azioni comuni nel tuo negozio, come l'applicazione di un codice sconto, la convalida del checkout, il completamento di un acquisto. È un file molto importante. Se è inaccessibile, è molto probabile che il tuo negozio non si comporti come previsto.
Utilizza i suggerimenti seguenti per aiutarti a individuare il problema e risolverlo.
Conflitti tra plugin
Alcuni plugin sono noti per bloccare intenzionalmente l'accesso a
admin-ajax.php. I seguenti tipi di plugin sono spesso responsabili:
- Plugin di sicurezza. Questi plugin hanno spesso un'impostazione che disabilita admin-ajax.php, o un'impostazione simile per bloccare l'accesso ai file di amministrazione.
- Plugin che disabilitano l'accesso a /wp-admin/ per i non amministratori.
- Plugin di minificazione. Questi plugin vantano miglioramenti delle prestazioni riducendo le dimensioni dei file javascript (e altri). Questo processo spesso interrompe il javascript in Easy Digital Downloads responsabile della comunicazione con admin-ajax.php
- Plugin di caching. Occasionalmente i plugin di caching possono causare problemi con admin-ajax.php interrompendo il javascript che crea le richieste ajax o semplicemente rendendo admin-ajax.php inaccessibile
Se ajax non funziona sul tuo sito e hai un plugin che corrisponde alle descrizioni sopra, prova a disattivare i plugin e poi a verificare se
admin-ajax.php diventa nuovamente accessibile. In tal caso, potresti essere ancora in grado di utilizzare il plugin, dovrai solo trovare l'impostazione problematica nel plugin e disabilitarla.
Firewall dell'host
Occasionalmente, le società di hosting impostano un firewall sul tuo sito che ha lo scopo di proteggerlo ma che ha anche l'effetto indesiderato di bloccare l'accesso a
admin-ajax.php. Se hai problemi con ajax, verifica se il tuo host ha un firewall e disabilitalo. Se ajax inizia a funzionare dopo aver disabilitato il firewall, hai trovato il colpevole. Se ajax è ancora inaccessibile dopo aver disabilitato il firewall, di solito puoi riabilitarlo in sicurezza.
Regole nel tuo file .htaccess
Il file
.htaccess utilizzato sui server Apache può talvolta includere regole speciali progettate per proteggere il tuo sito dagli attacchi. Occasionalmente queste regole vengono applicate in modo un po' troppo generico e disabilitano involontariamente l'accesso a admin-ajax.php. Se il tuo ajax non funziona, controlla quali regole contiene il tuo file .htaccess. Se ci sono regole oltre a quelle mostrate di seguito, rimuovile e vedi se ajax ricomincia a funzionare.
Il tuo file
.htaccess conterrà solitamente regole simili a queste (queste sono perfettamente sicure e normali):
# BEGIN WordPressRewriteEngine On RewriteBase / RewriteRule ^index.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] # END WordPress
Problemi Cross Domain
admin-ajax.php deve essere eseguito dallo stesso dominio da cui viene chiamato. Esempio: se il tuo sito è
https://www.example.com e provi a chiamare https://example.com/wp-admin/admin-ajax.php non funzionerà. Nota la presenza di www nel primo URL e l'assenza di www nel secondo URL.
Ciò vale anche per una discrepanza SSL. https://www.example.com/wp-admin/admin-ajax.php non può chiamare https://www.example.com/wp-admin/admin-ajax.php. Nota la presenza di https nel primo URL e l'assenza di https nel secondo.
