Dies wird höchstwahrscheinlich durch eine Datentypbeschränkung in der Datenbank Ihrer Website verursacht. FooEvents speichert die Ticketdaten für eine Bestellung in einer einzigen serialisierten Meta-Wert. Bei Großaufträgen (etwa 30+ Tickets in einer Bestellung, je nachdem, wie viele Daten jedes Ticket speichert) kann dieser serialisierte Wert die maximal zulässige Größe für ein TEXT Feld. Wenn das passiert:
- Die Bestell-Meta lautet abgeschnitten oder nicht vollständig gespeichert.
- FooEvents verfügt nicht über alle erwarteten Daten.
- Tickets für diese Bestellung können nicht korrekt generiert werden oder überhaupt.
Wer ist betroffen? #
Dies sollte nur Geschäfte betreffen, die:
- Haben HPOS (WooCommerce Hochleistungs-Auftragsspeicherung) aktiviert.
- Rechnen Sie mit einer Bearbeitung Großaufträge (etwa 30 oder mehr Tickets in einer einzigen Bestellung).
Wenn Sie nicht unter Verwendung von HPOS, sollten Sie von diesem Problem nicht betroffen sein.
Warum betrifft dies keine Nicht-HPOS-Websites? #
Auf Nicht-HPOS-Websites verwendet WooCommerce den Standard WordPress. Postmeta Tabelle (z. B. wp_postmeta) für Bestellmetadaten.
Unter Postmetadie Meta-Wert Die Spalte ist bereits definiert als LANGTEXT, das viel größere Werte speichern kann als TEXT.
Aus diesem Grund können Nicht-HPOS-Websites große FooEvents-Ticket-Metawerte ohne Änderungen sicher speichern.
Wenn dieses Problem auf einer Nicht-HPOS-Website auftritt, haben Sie oder Ihr Entwickler möglicherweise den Datentyp der Meta-Wert Feld im WordPress Postmeta Tabelle.
Technische Details #
- TEXT maximale Länge: 65.535 Bytes.
- LANGTEXT maximale Länge: 4 GB.
FooEvents speichert Daten pro Ticket, wie zum Beispiel:
- Ticket-IDs
- Angaben zum Teilnehmer
- Veranstaltungsinformationen
- Zusätzliche Ticket-Metadaten
All das wird in einem einzigen Meta-Wert. Bei Großaufträgen kann diese Zeichenfolge das überschreiten, was TEXT kann speichern, was zu Kürzungen und fehlerhaften Ticketausgaben führt.
Empfohlene Lösung #
Wenn Sie HPOS verwenden und große Bestellungen erwarten, ändern Sie die Meta-Wert Spalte in der wc_Bestellungen_Meta Tabelle aus TEXT zu LANGTEXT.
Das ist wichtig: Dazu muss eine WooCommerce-Kern-Tabelle geändert werden. Erstellen Sie immer zuerst eine Sicherungskopie Ihrer Datenbank. Wenn Sie sich dabei nicht sicher sind, bitten Sie Ihren Host oder einen Entwickler um Hilfe.
- Bestätigen Sie den Tabellennamen.
Die meisten Installationen verwenden: wp_wc_orders_meta
Wenn Sie ein benutzerdefiniertes Präfix verwenden, passen Sie es entsprechend an (zum Beispielmyshop_wc_bestellungen_meta). - Beispiel: Führen Sie den SQL-Befehl aus (passen Sie den Tabellennamen entsprechend an)
ALTER TABLE `wp_wc_orders_meta` MODIFY `meta_value` LONGTEXT NULL; - Überprüfen
- Stellen Sie sicher, dass die Abfrage ohne Fehler abgeschlossen wird.
- Geben Sie eine Testbestellung mit einer großen Anzahl von Tickets auf und überprüfen Sie, ob die Tickets wie erwartet generiert werden.
Wird dies WooCommerce oder HPOS brechen? #
Nein. Diese Änderung ist sicher und entspricht der Art und Weise, wie WordPress Metadaten bereits speichert:
- WordPress-Kern und WooCommerce bereits verwendet LANGTEXT für Meta-Wert im Postmeta Tabelle.
- Ändern von Meta-Wert in wc_Bestellungen_Meta von TEXT zu LANGTEXT Erhöht lediglich die Menge der speicherbaren Daten; ändert nichts daran, wie WooCommerce oder FooEvents die Daten lesen oder schreiben.
Das heißt:
- Immer eine vollständige Datenbank-Sicherung durchführen zuerst.
- Idealerweise testen Sie diese Änderung auf einem Staging-Site bevor es in der Produktion eingesetzt wird.