WooCommerce Bulk Editor lädt nicht: Ladeanimation hängt, DataTables-Fehler
Wenn der WooCommerce Bulk Editor nicht lädt, zeigt sich das auf eine von drei Arten: Die Ladeanimation verschwindet nie, eine DataTables warning erscheint und die Tabelle bleibt leer, oder die Seite erscheint, aber die Tabelle ist kaputt oder leer, oft direkt nach einem Update. BEAR selbst ändert sich von einem Tag auf den anderen selten, daher ist die Ursache meist etwas, das sich geändert hat: ein Plugin- oder Theme-Update, ein zwischengespeichertes Skript, eine Servereinstellung oder ein Produkt, dessen Daten sich nicht an den Browser senden lassen. Unten steht, wie die Editor-Seite lädt, wie Sie in wenigen Minuten erkennen, welcher Schritt fehlschlägt, und die Lösung für jeden Fall.
Wie die Editor-Seite lädt
Das Öffnen von Produkte (Products) > BEAR Bulk Editor führt zwei Schritte aus:
- Die Seite kommt mit den bereits auf dem Server aufgebauten Panels (Filter, Massenbearbeitung, Export, Einstellungen) hinter einer Ladeanimation an. Danach starten die Skripte des Editors im Browser, richten die Panels und die Tabelle ein und blenden die Animation aus. Ein JavaScript-Fehler beim Start stoppt das Skript, bevor es so weit kommt, daher bleibt die Animation für immer stehen.
- Die Tabelle fragt den Server nach den Zeilen der ersten Seite: eine POST-Anfrage an
/wp-admin/admin-ajax.phpmitaction=woobe_get_products. Die Antwort ist JSON, das mit{"draw":beginnt. Ist es etwas anderes, hält die Tabellenbibliothek an und zeigt ihre Warnung: Invalid JSON response, wenn der Server etwas geantwortet hat, das kein JSON ist, und Ajax error, wenn der Server mit einem Fehlerstatus geantwortet hat.
Sie brauchen also zwei Werkzeuge des Browsers, beide unter F12 (Cmd+Option+I auf dem Mac): die Konsole (Console) für Schritt 1 und den Tab Netzwerk (Network) für Schritt 2.
Erste Prüfungen nach einem Update
- Aktualisieren Sie BEAR, WooCommerce und WordPress auf die aktuellen Versionen. Ein altes BEAR auf einem neuen WordPress oder WooCommerce ist ein häufiger Grund für eine kaputte Seite.
- Leeren Sie den Browser-Cache vollständig, nicht nur die Cookies, und laden Sie mit Strg+F5 neu. Die FAQ so setzen Sie den Seiten-Cache im Browser zurück zeigt, wie das geht. Leeren Sie danach jeden serverseitigen Cache: das Cache-Plugin, den Hosting-Cache, das CDN.
- Öffnen Sie den Editor in einem privaten Fenster und in einem zweiten Browser. Funktioniert er dort, liegt das Problem im ersten Browser: in seinem Cache, in einer Erweiterung oder in einer gespeicherten Weiterleitung.
Die Skriptdateien von BEAR tragen die Plugin-Version in ihrer Adresse, daher holt ein Browser nach einem Update normalerweise die neuen. Alten Code hält eine Optimierungsschicht am Leben, die Admin-Skripte in eigenen Dateien zusammenfasst oder minimiert, etwa Plugins im Stil von Autoptimize, Server-Optimierungsmodule oder Cloudflare-Funktionen, und die weiterhin die vor dem Update erstellte Sammeldatei ausliefert. Schließen Sie /wp-admin/ von diesen Funktionen aus.
Fehler in der Browser-Konsole
Laden Sie die Editor-Seite bei geöffneter Konsole neu und lesen Sie die roten Zeilen. Der Dateiname rechts neben jedem Fehler verrät, wessen Code es ist.
jQuery.growl is not a function,wpColorPicker is not a functionund Ähnliches. BEAR lädt seine jQuery-Erweiterungen, und sie sind verschwunden, wenn sein Skript läuft. Meist lädt ein anderes Plugin oder das Theme auf Admin-Seiten eine zweite Kopie von jQuery, die diejenige ersetzt, an die die Erweiterungen angehängt wurden, oder ein Optimierer hat die Reihenfolge der Skripte verändert.- Fehler aus der Datei eines anderen Plugins. Ein einziger Skriptfehler kann jedes Skript stoppen, das danach auf der Seite läuft. Beheben oder entfernen Sie das Plugin, das ihn auslöst.
Maximum call stack size exceeded. Dem Browser ging beim Aufbau der Oberfläche der Stack aus. Das passiert in Shops mit sehr vielen Taxonomien oder Begriffen: Jede Produkt-Taxonomie wird mit allen ihren Begriffen in die Panels Filter und Massenbearbeitung gezeichnet. Die Panels zeichnen Taxonomien unabhängig davon, welche Spalten eingeschaltet sind. Die Lösung ist deshalb, schwere Taxonomien mit den Code-Filtern aus ihnen herauszuhalten, die in Tausende WooCommerce-Produkte in Masse bearbeiten erklärt sind. Sie gehören ins Theme oder in ein Snippets-Plugin und funktionieren so auch dann, wenn der Editor nicht öffnet.
Um herauszufinden, welches Plugin verantwortlich ist, deaktivieren Sie auf einer Staging-Kopie alles außer WooCommerce und BEAR, prüfen Sie, dass der Editor lädt, und aktivieren Sie die anderen eines nach dem anderen, wobei Sie jedes Mal die Konsole ansehen. Plugins bei Massenbearbeitungen isolieren zeigt, wie Sie ein Plugin, das Sie brauchen, von den Anfragen des Editors fernhalten, ohne es für die ganze Website zu deaktivieren.
DataTables warning: Invalid JSON response oder Ajax error
Geben Sie im Tab Netzwerk admin-ajax in das Filterfeld ein, laden Sie neu und klicken Sie die Anfrage an, deren Payload woobe_get_products enthält. Lesen Sie ihren Status und den Tab Antwort (Response).
| Was die Anfrage zeigt | Was es bedeutet |
|---|---|
200, Text oder HTML vor {"draw": | Etwas hat Ausgaben in die Antwort geschrieben: einen PHP-Hinweis oder eine Warnung, oder HTML aus einem Plugin. Der Text nennt die Quelle. |
| 200 mit leerer Antwort | Die Zeilen ließen sich nicht als JSON kodieren, meist wegen Text in kaputter Zeichenkodierung |
200 mit nur 0 | Die Sicherheitsprüfung hat die Anfrage abgelehnt: Laden Sie die Seite neu; bleibt es dabei, fehlt dem Konto die Berechtigung manage_woocommerce |
| 403 | Eine Firewall oder Sicherheitsregel hat admin-ajax.php blockiert |
| 500 | Ein fataler PHP-Fehler beim Aufbau der Zeilen |
| 502, 504 oder lange ausstehend | Dem Server ging die Zeit aus: zu viele Zeilen oder Variationen auf der Seite, oder ein langsames Plugin hängt an der Anfrage |
Ausgabe vor dem JSON und PHP-Fehler
Hinweise in der Antwort stammen davon, dass WP_DEBUG mit eingeschalteter Anzeige aktiv ist, oder von einem Plugin, das in Admin-Anfragen Text ausgibt. Protokollieren Sie Fehler stattdessen in eine Datei, statt sie auszugeben, in der wp-config.php oberhalb der Zeile, die zum Beenden des Bearbeitens auffordert:
define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false );
Laden Sie den Editor neu und öffnen Sie dann wp-content/debug.log. Der letzte PHP Fatal error oder die letzte Warnung nennt die Datei, und ihr Pfad nennt das Plugin oder Theme. Ein Plugin zur Anzeige von Logs wie Error Log Monitor oder Query Monitor zeigt dasselbe innerhalb von wp-admin. Der WordPress-Leitfaden zum Debugging erklärt die Optionen.
Zwei Ursachen kommen immer wieder vor. Allowed memory size exhausted bedeutet, dass die Anfrage mehr PHP-Speicher braucht, als der Server ihr gibt; verringern Sie Standardanzahl der Produkte pro Seite (Default products count per page) im Einstellungen-Tab und lesen Sie den Abschnitt zum Speicher im oben verlinkten Artikel über große Kataloge. Die zweite Ursache ist eine kaputte Übersetzungsdatei: Stellen Sie die Sprache Ihres Profils unter Benutzer (Users) > Profil (Profile) auf Englisch um und laden Sie neu. Öffnet sich der Editor, suchen Sie in wp-content/languages/plugins/ nach Dateien, die woo-bulk-editor- plus Ihr Locale heißen. Eine Datei dort hat Vorrang vor der mit BEAR gelieferten Übersetzung; löschen Sie sie, und BEAR greift auf die eigene zurück.
Eine leere Antwort: ein Produkt bricht die Seite
Lädt der Editor mit manchen Filtern und schlägt mit anderen fehl, oder schlägt er auf einer bestimmten Seite der Tabelle fehl, trägt ein Produkt Text, der sich nicht kodieren lässt: einen Titel, ein Attribut oder einen Kategorienamen mit kaputten Zeichen nach einem Import oder einer fehlgeschlagenen Migration, oder Attributnamen, die noch HTML-Tags und Links aus dem alten Shop enthalten. Stellen Sie 10 Zeilen pro Seite ein und blättern Sie durch die Seiten; die Seite, die fehlschlägt, enthält es. Korrigieren Sie den Text im eigenen Bearbeitungsbildschirm des Produkts oder unter Produkte > Attribute (Products > Attributes) und Kategorien (Categories), und die Tabelle lädt wieder.
403: admin-ajax.php ist blockiert
Der gesamte Editor arbeitet über admin-ajax.php. Regeln in der .htaccess, die Firewall eines Sicherheits-Plugins, eine Hosting-Firewall oder eine CDN-Regel, die sie blockieren oder per Challenge prüfen, brechen die Tabelle und jedes Speichern. Finden Sie die Regel im Protokoll dessen, was blockiert hat, und erlauben Sie die Anfrage.
Wenn die Seite des Editors gar nicht erst lädt
- 404 in einem Browser, im privaten Fenster funktioniert es. Der Browser hat eine alte Weiterleitung für die Adresse des Editors gespeichert. Das Löschen der Cookies entfernt sie nicht; leeren Sie auch zwischengespeicherte Bilder und Dateien. Schlägt es in jedem Browser fehl, öffnen Sie Einstellungen (Settings) > Permalinks und klicken Sie auf Änderungen speichern (Save Changes), um die Rewrite-Regeln neu aufzubauen, und prüfen Sie Weiterleitungs-Plugins und
.htaccess-Regeln auf die Adressen unter/wp-admin/. - Kein Eintrag BEAR Bulk Editor im Menü Produkte. Der Editor wird Benutzern mit der WooCommerce-Berechtigung
manage_woocommerceangezeigt; Administratoren und Shop-Manager haben sie standardmäßig, andere Rollen nur, wenn sie ihnen gegeben wurde. - Die Seite lädt, aber variable Produkte fehlen oder die Anzahlen wirken falsch. Manche Themes und Plugins ändern Produktabfragen überall, auch in Admin-Anfragen. Theme-Optionen, die Variationen als eigene Produkte zeigen, wie die in Woodmart, sind ein Beispiel. Schalten Sie die Option während der Bearbeitung aus oder bitten Sie die Theme-Autoren, sie aus Admin-AJAX-Anfragen herauszuhalten.
Es hat geladen, aber etwas fehlt
Manches sieht kaputt aus und ist es nicht:
- Die Schaltfläche Massenbearbeitung durchführen (Do Bulk Edit) erscheint erst, nachdem Sie im Massenbearbeitung-Tab mindestens ein Feld angehakt haben.
- Die Schaltfläche Neues Produkt (New Product) in der Werkzeugleiste ist ausgeblendet, solange ein Filter aktiv ist; setzen Sie den Filter zurück, um sie zu sehen.
- Die Panels Filter, Massenbearbeitung und Export öffnen sich mit der Schaltfläche Anzeigen: Filter/Massenbearbeitung/Export (Show: Filters/Bulk Edit/Export) über der Tabelle.
- Spalten, die Sie im Einstellungen-Tab ausgeschaltet haben, werden weder angezeigt noch exportiert. Die Dokumentation zum Produkteditor (Products Editor) beschreibt die Tabelle und ihre Werkzeugleiste.
Checkliste
- BEAR, WooCommerce und WordPress sind aktuell; Browser- und Server-Caches sind geleert.
- Die Konsole zeigt auf der Editor-Seite keine roten Fehler, oder das Plugin, das sie auslöst, ist gefunden.
- Die Anfrage
woobe_get_productsliefert 200 und eine Antwort, die mit{"draw":beginnt. WP_DEBUG_DISPLAYist aus, unddebug.logenthält keinen fatalen Fehler vom letzten Neuladen./wp-admin/undadmin-ajax.phpsind von Caching, Skript-Optimierung und Firewall-Challenges ausgenommen.
Treffen alle fünf Punkte zu und der Editor lädt trotzdem nicht, eröffnen Sie ein Thema im BEAR-Support-Forum mit der BEAR-Version, den Konsolenfehlern sowie dem Status und den ersten Zeilen der Antwort auf woobe_get_products.