Wenn Sie eine Dashboard-Meldung mit dem Titel „Fehler im Spendenformular erkannt“ sehen, erklärt diese Anleitung, was sie bedeutet und wie Sie sie beheben können.
Wichtig ist zunächst zu wissen, dass diese eine Meldung auf zwei sehr unterschiedliche Situationen hinweisen kann. Eine davon kann echte Spender daran hindern, per Karte zu bezahlen, und erfordert Ihre Aufmerksamkeit. Die andere ist, dass Charitable automatisierte Crawler bemerkt, und das ist harmlos. Bevor Sie Einstellungen ändern, identifizieren Sie, mit welcher Situation Sie es zu tun haben.
- Was diese Benachrichtigung bedeutet
- Identifizieren Sie zuerst die Ursache
- Ursache 1: Ein Optimierungs-Plugin blockiert das Zahlungsskript
- Speicherort der Einstellungen nach Plugin
- Ursache 2: Suchmaschinen- und Social-Media-Crawler
- Auf die neueste Version aktualisieren
- Die Benachrichtigung ausblenden
- Erweitert: Was Charitable automatisch ausschließt
- Benötigen Sie noch Hilfe?
Was diese Benachrichtigung bedeutet
Um eine Kartenzahlung abzuwickeln, ist Ihr Spendenformular auf ein kleines Skript angewiesen, das direkt von Ihrem Zahlungsanbieter im Browser des Besuchers geladen wird. Stripe lädt js.stripe.com, PayPal lädt das PayPal SDK und Square lädt das Square Web SDK. Dieses Skript zeichnet die sicheren Kartenfelder und sendet die Zahlung an den Anbieter. Wenn es fehlt, können die Kartenfelder nicht angezeigt werden und die Spende kann nicht abgeschlossen werden.
Charitable überwacht jede Spendenseite beim Laden. Wenn das erforderliche Zahlungsskript nicht vorhanden war, wird das Ereignis protokolliert und, wenn genügend Ereignisse protokolliert wurden, diese Meldung angezeigt. Die Meldung listet auch alle Caching- oder Optimierungs-Plugins auf, die auf Ihrer Website erkannt wurden, was Ihr erster Hinweis darauf ist, was passiert ist.
Es gibt zwei häufige Gründe, warum das Skript fehlt, und diese erfordern sehr unterschiedliche Reaktionen.
- Ein Caching- oder Optimierungs-Plugin hat den JavaScript-Code der Seite zwischengespeichert, kombiniert, minimiert oder verzögert, sodass das Zahlungsskript nie ausgeführt wurde. Dies kann echte Spender abschrecken und muss behoben werden.
- Suchmaschinen- und Social-Media-Crawler haben Ihre Spendenseiten besucht. Sie lesen die Seite, führen aber keine Zahlungsskripte aus, wie es ein echter Browser tut. Daher registriert die Prüfung einen Fehler, obwohl kein echter Spender betroffen war. Dies ist harmlos.
Identifizieren Sie zuerst die Ursache
Charitable protokolliert jedes aufgezeichnete Ereignis, damit Sie genau sehen können, was passiert ist. Um das Protokoll anzuzeigen:
- Klicken Sie auf Protokoll überprüfen in der Meldung oder gehen Sie zu Charitable > Tools > Protokolle in Ihrem WordPress-Adminbereich. Sie können auch eine Zusammenfassung unter Charitable > Tools > Systeminformationen im Abschnitt Formularfehler sehen.
- Suchen Sie die Einträge mit dem Fehlercode gateway_sdk_not_loaded. Sie können das vollständige Protokoll in eine CSV-Datei exportieren, wenn Sie es lieber in einer Tabellenkalkulation überprüfen möchten.
- Sehen Sie sich für jeden Eintrag den User-Agent des Besuchers an (den Browser, der die Seite geladen hat).
Der User-Agent gibt Ihnen an, welchen Pfad Sie verfolgen müssen:
- Ein normaler, aktueller Browser (Chrome, Safari, Firefox oder Edge auf einem Telefon oder Computer) bedeutet, dass ein echter Besucher betroffen sein könnte. Folgen Sie Ursache 1.
- Eine Suchmaschine oder ein Social-Crawler (z. B.
bingbot,Googlebot,meta-externalagentvon Facebook oderOAI-SearchBotvon OpenAI) bedeutet, dass ein automatisierter Bot die Prüfung ausgelöst hat, nicht ein Spender. Folgen Sie Ursache 2.
Wenn jeder Eintrag ein Crawler ist und Ihre Spenden ansonsten normal eingehen, handelt es sich fast sicher um den harmlosen Fall in Ursache 2.
Ursache 1: Ein Optimierungs-Plugin blockiert das Zahlungsskript
Wenn Ihr Protokoll normale Browser anzeigt, ist die Ursache fast immer ein Caching- oder Optimierungs-Plugin. Insbesondere drei Funktionen können das Zahlungs-Skript von einer Spendenseite zurückhalten:
- Seitenweites Caching kann eine gespeicherte Kopie der Seite bereitstellen, die ohne das Zahlungs-Skript erstellt wurde.
- JavaScript minimieren und kombinieren kann die Reihenfolge brechen, in der das Zahlungs-Skript geladen werden muss.
- JavaScript verzögern oder aufschieben (manchmal als „JavaScript bei Interaktion laden“ bezeichnet) hält Skripte zurück, bis der Besucher klickt oder scrollt, sodass das Zahlungs-Skript nicht bereit ist, wenn das Formular es benötigt. Dies ist der häufigste Schuldige.
Die Lösung besteht darin, Ihrem Optimierungs-Plugin mitzuteilen, die Spendenseiten und die Zahlungs-Skripte in Ruhe zu lassen. Wenden Sie alle drei dieser Punkte an:
- Schließen Sie Ihre Spendenseiten vom seitenweiten Caching aus. Fügen Sie die URLs jeder Seite, die ein Spendenformular enthält (Ihre Kampagnen- und Spendenseiten), zur Ausschluss- oder Umgehungsliste des Caches hinzu. Wenn Ihr Hoster oder CDN ebenfalls Seiten cacht, schließen Sie sie auch dort aus.
- Schließen Sie die Zahlungs-Skripte und die Skripte von Charitable vom Minimieren und Kombinieren aus. Verwenden Sie die unten aufgeführten Werte.
- Schließen Sie dieselben Skripte vom Verzögern oder Aufschieben von JavaScript aus. Dies ist der Schritt, der am häufigsten übersehen wird, und normalerweise derjenige, der das Problem behebt.
In den meisten Optimierungs-Plugins können Sie Folgendes in die entsprechenden Ausschluss- oder „Nicht optimieren“-Felder einfügen. Sie müssen nicht exakt sein, eine Übereinstimmung mit einem Teil der Skriptadresse reicht aus:
js.stripe.com
www.paypal.com/sdk
paypalobjects.com
web.squarecdn.com
js.squareup.com
charitable
charitable-pro
CHARITABLE_VARS
Nach dem Speichern leeren Sie den Cache Ihres Optimierungs-Plugins, öffnen Sie dann eine Spendenseite in einem privaten oder Inkognito-Browserfenster und bestätigen Sie, dass die Kartenfelder angezeigt werden und eine Testspende funktioniert.
Speicherort der Einstellungen nach Plugin
Wo sich diese Optionen befinden, hängt vom Plugin ab. Die gängigsten sind unten aufgeführt. Für WP Rocket und WP-Optimize wendet Charitable diese Ausschlüsse bereits für Sie an, sodass Sie dort normalerweise nichts ändern müssen.
WP Fastest Cache
Auf der Registerkarte Einstellungen überprüfen Sie JS minimieren, JS kombinieren und Blockierendes JS rendern und schalten sie bei Bedarf zum Testen aus. Wenn Sie die Premium-Funktion JS verzögern verwenden, fügen Sie die obigen Werte zur Ausschlussliste hinzu. Unter Ausschließen > Seiten ausschließen fügen Sie Ihre Kampagnen- und Spenden-Seiten-URLs hinzu, damit sie niemals zwischengespeichert werden, und unter Ausschließen > JS ausschließen fügen Sie die obigen Werte hinzu. Löschen Sie anschließend den Cache auf der Registerkarte Cache löschen.
WP Rocket
Charitable schließt die Zahlungs-Skripte und eigene Dateien automatisch von WP Rockets Minify, Combine und JavaScript-Ausführung verzögern aus, sodass dies normalerweise keine Aktion erfordert. Wenn Sie immer noch ein Problem sehen, stellen Sie sicher, dass keine Charitable- oder Zahlungs-Skripte manuell wieder hinzugefügt werden, und fügen Sie unter Erweiterte Regeln > Niemals zwischenspeichern (URLs) Ihre Spenden-Seiten-URLs hinzu.
LiteSpeed Cache
Unter Seitenoptimierung > JS-Einstellungen fügen Sie die obigen Werte zu JS-Ausschlüsse und, falls Sie es verwenden, zu JS-Ausschlüsse für Gastmodus und den Ausschlusslisten für Lokalisierung oder Verzögerung hinzu. Unter Cache > Ausschlüsse fügen Sie Ihre Spenden-Seiten-URLs zu URIs nicht zwischenspeichern hinzu. Leeren Sie anschließend alle Caches.
WP-Optimize
Charitable fügt die Zahlungs-Skripte und eigene Dateien automatisch zu den Minify- und Combine-Ausschlüssen von WP-Optimize hinzu, sodass dies normalerweise keine Aktion erfordert. Bei Bedarf können Sie sie unter WP-Optimize > Minify > JavaScript in der Ausschlussliste bestätigen und Spenden-Seiten von der Zwischenspeicherung unter WP-Optimize > Cache > Erweiterte Einstellungen ausschließen.
Autoptimize
Unter Einstellungen > Autoptimize > JavaScript-Optionen fügen Sie die obigen Werte zu Skripte von Autoptimize ausschließen hinzu. Wenn Sie „100 % JavaScript-Optimierung aktivieren“ oder eine Verzögerungsoption verwenden, stellen Sie sicher, dass diese Ausschlüsse weiterhin gelten. Autoptimize speichert Seiten nicht selbst zwischen, daher sollten Sie es mit den Ausschlüssen Ihres Seiten-Cache-Plugins kombinieren.
W3 Total Cache
Unter Leistung > Minify fügen Sie die obigen Werte zur Liste JS-Dateien niemals minimieren hinzu und unter Leistung > Seiten-Cache > Erweitert fügen Sie Ihre Spenden-Seiten-URLs zu Seiten niemals zwischenspeichern hinzu.
FlyingPress
Unter Einstellungen > JavaScript fügen Sie die obigen Werte zu den Listen Von Lazy Load ausschließen und Von Verzögerung ausschließen hinzu. Unter Einstellungen > Cache fügen Sie Ihre Spenden-Seiten-URLs zu den Ausschlüssen hinzu. Leeren Sie anschließend den Cache.
WP Super Cache
WP Super Cache minimiert oder verzögert JavaScript nicht, daher ist die Lösung hier nur die Zwischenspeicherung. Unter Einstellungen > WP Super Cache > Erweitert fügen Sie Ihre Kampagnen- und Spenden-Seiten-URLs zu Akzeptierte Dateinamen & Abgelehnte URIs hinzu, damit sie nicht aus dem Cache bedient werden.
Cache Enabler
Cache Enabler ist nur ein Seiten-Cache. Unter Einstellungen > Cache Enabler fügen Sie die URLs Ihrer Spendenseiten zu den Cache-Ausschlüssen (Beitrags-IDs oder Seitenpfade) hinzu, damit diese immer frisch ausgeliefert werden.
Andere Tools folgen der gleichen Idee. Deaktivieren oder schließen Sie in SiteGround Optimizer die Charitable- und Zahlungs-Skripte unter den JavaScript-Optionen aus und vermeiden Sie deren Kombination. Deaktivieren Sie in Cloudflare Rocket Loader für Ihre Spendenseiten (Cloudflare's Rocket Loader verzögert JavaScript und kann das Zahlungs-Skript zurückhalten) und schließen Sie, wenn Sie Automatic Platform Optimization (APO) verwenden, die Spendenseiten aus.
Ursache 2: Suchmaschinen- und Social-Media-Crawler
Wenn Ihre Log-Einträge nur von Crawlern stammen, sind die Nachrichten gut. Suchmaschinen und soziale Plattformen rufen Ihre Spendenseiten ab, um sie zu indizieren oder Link-Vorschauen zu erstellen, aber sie führen das Zahlungs-Skript nicht so aus, wie es ein echter Browser tut. Die Prüfung sieht, dass das Skript fehlt, und protokolliert es, obwohl kein echter Spender betroffen war und nichts auf Ihrer Website kaputt ist.
Ein stetiger Strom von Crawler-Besuchen ist für jede öffentliche Spendenseite normal und reicht aus, um die Benachrichtigung anzuzeigen. Ihre echten Spenden sind nicht betroffen und kein Spender wird abgewiesen.
Sie müssen keine Caching-Einstellungen dafür ändern. Der beste Schritt ist, Charitable zu aktualisieren, wie als Nächstes beschrieben. Neuere Versionen erkennen Crawler und hören auf, sie zu zählen, sodass diese Einträge die Benachrichtigung nicht mehr auslösen.
Auf die neueste Version aktualisieren
Welche Ursache auch immer auf Sie zutrifft, das Aktualisieren von Charitable auf die neueste Version ist lohnenswert. Gehen Sie zu Plugins > Installierte Plugins und aktualisieren Sie Charitable. Aktuelle Versionen:
- Laden Sie das Stripe-Skript auf der gesamten Website, damit es viel unwahrscheinlicher ist, dass es von einer gecachten Spendenseite entfernt wird.
- Schließen Sie die Zahlungs-Skripte von beliebten Optimierungs-Plugins automatisch aus.
- Erkennen Sie Suchmaschinen- und soziale Crawler, damit diese keine Fehlalarme mehr auslösen.
- Richten Sie diese Fehlerbehebungsanleitung auf die richtige Adresse (ältere Versionen verlinkten zu einer Seite, die nicht mehr existiert).
Die Benachrichtigung ausblenden
Die Benachrichtigung kann noch einige Tage bestehen bleiben, auch nachdem die Ursache behoben wurde. Sie verschwindet von selbst, sobald 24 Stunden lang keine neuen Ereignisse mehr aufgezeichnet wurden, und Sie können sie jederzeit manuell vom Dashboard aus ausblenden.
Erweitert: Was Charitable automatisch ausschließt
Für WP Rocket und WP-Optimize schließt Charitable automatisch die Zahlungs-SDKs und eigene Skripte von Minify, Combine und Delay-JavaScript aus, sodass Sie normalerweise nichts dort konfigurieren müssen. Schließen Sie für andere Tools die folgenden manuell aus.
- Skript-Hosts von Zahlungsanbietern:
js.stripe.com,www.paypal.com/sdk,paypalobjects.com,web.squarecdn.com(undsandbox.web.squarecdn.comim Testmodus),js.squareup.com. - Eigene Skripte von Charitable: jede Datei unter
/wp-content/plugins/charitable/oder/wp-content/plugins/charitable-pro/und die Skript-Handlescharitable-script,charitable-stripe,charitable-paypal,charitable-squareundcharitable-universal. - Inline-Konfigurationsvariablen:
CHARITABLE_VARS,CHARITABLE_STRIPE_VARS,CHARITABLE_PAYPAL_VARS,CHARITABLE_SQUARE_VARS.
Benötigen Sie noch Hilfe?
Wenn Ihr Protokoll normale Browser anzeigt und Spenden nach dem Ausschließen der Skripte immer noch fehlschlagen, wenden Sie sich an den Charitable-Support. Es hilft uns, wenn Sie den Fehlercode aus Ihrem Protokoll (gateway_sdk_not_loaded), das von Ihnen verwendete Zahlungs-Gateway und die im Hinweis aufgeführten Caching- oder Optimierungs-Plugins angeben. Das sagt uns sofort, wo wir suchen müssen.





