Als u het volgende bericht ontvangt, is het waarschijnlijk dat uw winkel niet goed functioneert:
Uw site lijkt de WordPress ajax-interface te blokkeren. Dit kan problemen met uw winkel veroorzaken.
Het
admin-ajax.php bestand wordt gebruikt door Easy Digital Downloads, en vele andere plugins, om veelvoorkomende acties in uw winkel uit te voeren, zoals het toepassen van een kortingscode, het valideren van de kassa, het voltooien van een aankoop. Het is een zeer belangrijk bestand. Als het ontoegankelijk is, is het zeer waarschijnlijk dat uw winkel zich niet gedraagt zoals verwacht.
Gebruik de onderstaande suggesties om het probleem op te sporen en op te lossen.
Pluginconflicten
Sommige plugins zijn bekend dat ze opzettelijk de toegang tot
admin-ajax.php blokkeren. De volgende soorten plugins zijn vaak verantwoordelijk:
- Beveiligingsplugins. Deze plugins hebben vaak een instelling die admin-ajax.php uitschakelt, of een vergelijkbare instelling voor het blokkeren van toegang tot admin-bestanden.
- Plugins die de toegang tot /wp-admin/ uitschakelen voor niet-beheerders.
- Minificatieplugins. Deze plugins bieden prestatieverbeteringen door de grootte van javascript (en andere) bestanden te verkleinen. Dit proces breekt vaak de javascript in Easy Digital Downloads die verantwoordelijk is voor de communicatie met admin-ajax.php
- Cachingplugins. Af en toe kunnen cachingplugins problemen veroorzaken met admin-ajax.php door ofwel de javascript te breken die de ajax-verzoeken maakt, ofwel door simpelweg admin-ajax.php ontoegankelijk te maken
Als ajax niet werkt op uw site en u heeft een plugin die overeenkomt met de bovenstaande beschrijvingen, probeer dan de plugins te deactiveren en test vervolgens om te zien of
admin-ajax.php weer toegankelijk wordt. Als dat zo is, kunt u de plugin mogelijk nog steeds gebruiken, u hoeft alleen de problematische instelling in de plugin te vinden en deze uit te schakelen.
Host Firewalls
Af en toe zetten hostingbedrijven een firewall op uw site die bedoeld is om uw site te beschermen, maar die ook het nadelige effect heeft van het blokkeren van de toegang tot
admin-ajax.php. Als u problemen heeft met ajax, controleer dan of uw host een firewall heeft en schakel deze uit. Als ajax weer gaat werken na het uitschakelen van de firewall, heeft u de boosdoener gevonden. Als ajax nog steeds ontoegankelijk is na het uitschakelen van de firewall, kunt u deze meestal veilig weer inschakelen.
Regels in uw .htaccess-bestand
Het
.htaccess-bestand dat op apache-servers wordt gebruikt, kan soms speciale regels bevatten die zijn ontworpen om uw site te beschermen tegen aanvallen. Af en toe worden deze regels iets te algemeen toegepast en schakelen ze onbedoeld de toegang tot admin-ajax.php uit. Als uw ajax niet werkt, controleer dan welke regels uw .htaccess -bestand bevat. Als er regels zijn die afwijken van de onderstaande, verwijder ze dan en kijk of ajax weer gaat werken.
Uw
.htaccess-bestand bevat meestal regels die er zo uitzien (deze zijn volkomen veilig en normaal):
# BEGIN WordPressRewriteEngine On RewriteBase / RewriteRule ^index.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] # END WordPress
Cross-domeinproblemen
admin-ajax.php moet worden uitgevoerd op hetzelfde domein als waarvandaan het wordt aangeroepen. Voorbeeld: als uw site is
https://www.example.com en u probeert aan te roepen https://example.com/wp-admin/admin-ajax.php zal het niet werken. Let op de www in de eerste URL en geen www in de tweede URL.
Dit geldt ook voor een SSL-mismatch. https://www.example.com/wp-admin/admin-ajax.php kan niet https://www.example.com/wp-admin/admin-ajax.php aanroepen. Let op de https in de eerste URL en geen https in de tweede.
