Domande frequenti

⌘K
  1. Domande frequenti...
  2. Biglietti
  3. I biglietti non vengono generati per ordini di grandi dimensioni.

I biglietti non vengono generati per ordini di grandi dimensioni.

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.

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.

  1. 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 esempio myshop_wc_ordini_meta).
  2. Esempio di esecuzione del comando SQL (modificare il nome della tabella di conseguenza)
    ALTER TABLE `wp_wc_orders_meta` MODIFY `meta_value` LONGTEXT NULL;
  3. 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.