Probabilmente ciò è dovuto a una limitazione del tipo di dati nel database del tuo sito. FooEvents memorizza i dati dei biglietti relativi a un ordine in un unico file serializzato. meta_value. Per ordini di grandi dimensioni (circa 30+ biglietti in un unico ordine, a seconda della quantità di dati memorizzati in ciascun biglietto), tale valore serializzato può superare la dimensione massima consentita per un TESTO campo. Quando ciò accade:
- Il meta dell'ordine è troncato o non salvato completamente.
- FooEvents non dispone di tutti i dati previsti.
- I biglietti per quell'ordine potrebbero non essere generato correttamente o affatto.
Chi è interessato? #
Ciò dovrebbe riguardare solo i negozi che:
- Avere HPOS (WooCommerce Memorizzazione ordini ad alte prestazioni) abilitato.
- Prevedi di elaborare ordini di importo elevato (circa 30 o più biglietti in un unico ordine).
Se sei non utilizzando HPOS, non dovresti essere interessato da questo problema.
Perché questo non riguarda i siti non HPOS? #
Sui siti non HPOS, WooCommerce utilizza lo standard WordPress. postmeta tabella (ad esempio wp_postmeta) per i meta dati dell'ordine.
In postmeta, il meta_value La colonna è già definita come TESTO LUNGO, che può memorizzare valori molto più grandi di TESTO.
Per questo motivo, i siti non HPOS possono archiviare in modo sicuro valori meta ticket FooEvents di grandi dimensioni senza alcuna modifica.
Se riscontri questo problema su un sito non HPOS, tu o il tuo sviluppatore potreste aver modificato il tipo di dati del meta_value campo nel WordPress postmeta tabella.
Dettagli tecnici #
- TESTO lunghezza massima: 65.535 byte.
- TESTO LUNGO lunghezza massima: 4 GB.
FooEvents memorizza dati relativi ai biglietti quali:
- ID biglietto
- Dettagli dei partecipanti
- Informazioni sull'evento
- Meta biglietto aggiuntivo
Tutto ciò viene serializzato in un unico meta_value. Per ordini di grandi dimensioni, tale stringa può superare ciò che TESTO può memorizzare, causando troncamenti e generazione di biglietti danneggiati.
Soluzione consigliata #
Se utilizzi HPOS e prevedi ordini di grandi dimensioni, modifica il meta_value colonna nel wc_ordini_meta tabella da TESTO a TESTO LUNGO.
Importante: Ciò comporta la modifica di una tabella core WooCommerce. Esegui sempre prima il backup del database. Se non ti senti a tuo agio nel farlo, chiedi assistenza al tuo host o a uno sviluppatore.
- Conferma il nome della tabella
La maggior parte delle installazioni utilizzerà: wp_wc_orders_meta
Se si utilizza un prefisso personalizzato, regolarlo di conseguenza (ad esempiomyshop_wc_ordini_meta). - Esempio di esecuzione del comando SQL (modificare il nome della tabella di conseguenza)
ALTER TABLE `wp_wc_orders_meta` MODIFY `meta_value` LONGTEXT NULL; - Verifica
- Assicurati che la query venga completata senza errori.
- Effettua un ordine di prova con un numero elevato di biglietti e verifica che i biglietti vengano generati come previsto.
Questo romperà WooCommerce o HPOS? #
No. Questa modifica è sicura ed è in linea con il modo in cui WordPress già memorizza i metadati:
- Il core WordPress e WooCommerce già utilizzano TESTO LUNGO per meta_value nel postmeta tabella.
- Cambiamento meta_value in wc_ordini_meta da TESTO a TESTO LUNGO aumenta semplicemente la quantità di dati che può essere memorizzata; non modifica il modo in cui WooCommerce o FooEvents leggono o scrivono i dati.
Detto questo:
- Sempre eseguire un backup completo del database primo.
- Idealmente, prova questa modifica su un sito di staging prima di applicarlo alla produzione.