Lo más probable es que esto se deba a una limitación del tipo de datos en la base de datos de su sitio web. FooEvents almacena los datos de los tickets de un pedido en un único archivo serializado. meta_valor. En pedidos grandes (aproximadamente más de 30 tickets en un solo pedido, dependiendo de la cantidad de datos que almacene cada ticket), ese valor serializado puede exceder el tamaño máximo permitido para un TEXTO campo. Cuando eso ocurre:
- El meta del pedido es truncado o no guardado completamente.
- FooEvents no tiene todos los datos que espera.
- Los boletos para ese pedido pueden no se genere correctamente o en absoluto.
¿A quiénes afecta? #
Esto solo debería afectar a las tiendas que:
- Tener HPOS (Almacenamiento de pedidos de alto rendimiento WooCommerce) habilitado.
- Prepárese para procesar pedidos de gran volumen (alrededor de 30 o más entradas en un solo pedido).
Si usted es no utilizando HPOS, no debería verse afectado por este problema.
¿Por qué esto no afecta a los sitios que no son HPOS? #
En sitios que no son HPOS, WooCommerce utiliza el estándar WordPress. metadatos de entrada tabla (por ejemplo, wp_postmeta) para los metadatos de los pedidos.
En metadatos de entradaEl meta_valor La columna ya está definida como TEXTO LARGO, que puede almacenar valores mucho mayores que TEXTO.
Por eso, los sitios que no son HPOS pueden almacenar de forma segura grandes valores meta de tickets FooEvents sin ningún cambio.
Si experimenta este problema en un sitio que no sea HPOS, es posible que usted o su desarrollador hayan cambiado el tipo de datos del meta_valor campo en el WordPress metadatos de entrada mesa.
Detalles técnicos #
- TEXTO Longitud máxima: 65 535 bytes.
- TEXTO LARGO Longitud máxima: 4 GB.
FooEvents almacena datos por ticket, tales como:
- Identificadores de entradas
- Datos de los asistentes
- Información sobre el evento
- Meta adicional del ticket
Todo eso se serializa en un único meta_valor. En pedidos grandes, esa cadena puede superar lo que TEXTO puede almacenar, lo que provoca truncamiento y la generación de tickets defectuosos.
Solución recomendada #
Si utiliza HPOS y espera pedidos de gran volumen, cambie el meta_valor columna en el wc_pedidos_meta tabla de TEXTO a TEXTO LARGO.
Importante: Esto implica modificar una tabla central WooCommerce. Realice siempre una copia de seguridad de su base de datos primero. Si no se siente cómodo haciéndolo, pida ayuda a su proveedor de alojamiento web o a un desarrollador.
- Confirmar el nombre de la tabla
La mayoría de las instalaciones utilizarán: wp_wc_orders_meta
Si utiliza un prefijo personalizado, ajústelo según corresponda (por ejemplomis_pedidos_wc_meta). - Ejemplo: ejecute el comando SQL (ajuste el nombre de la tabla según corresponda)
ALTER TABLE `wp_wc_orders_meta` MODIFY `meta_value` LONGTEXT NULL; - Verificar
- Asegúrate de que la consulta se complete sin errores.
- Realice un pedido de prueba con un gran número de entradas y confirme que las entradas se generan según lo esperado.
¿Esto romperá WooCommerce o HPOS? #
No. Este cambio es seguro y se ajusta a la forma en que WordPress ya almacena los metadatos:
- El núcleo WordPress y WooCommerce ya utilizan TEXTO LARGO para meta_valor en el metadatos de entrada mesa.
- Cambio meta_valor en wc_pedidos_meta de TEXTO a TEXTO LARGO Simplemente aumenta la cantidad de datos que se pueden almacenar; no cambia la forma en que WooCommerce o FooEvents leen o escriben los datos.
Dicho esto:
- Siempre Realizar una copia de seguridad completa de la base de datos. primero.
- Lo ideal sería probar este cambio en un sitio de ensayo antes de aplicarlo a la producción.