Servicio especializado
Soporte HPOS para WooCommerce
High-Performance Order Storage saca los pedidos de WooCommerce de las tablas de entradas de WordPress y los lleva a tablas propias. La mayoría de los problemas vienen de código que sigue leyendo los pedidos a la antigua. Auditamos, migramos, verificamos y arreglamos, sin poner en riesgo los datos de pedidos.
Problemas habituales
Problemas de HPOS que resolvemos
Código a medida que lee de wp_posts
get_post_meta(), WP_Query y SQL directo sobre pedidos devuelven vacío tras el cambio.
Extensiones incompatibles
WooCommerce no deja activar HPOS porque hay plugins activos que no han declarado compatibilidad.
Sincronización que nunca termina
Pedidos pendientes de sincronizar, sincronizaciones de días o errores durante la migración.
Datos distintos entre tablas
Pedidos, meta o direcciones que no coinciden entre las tablas de entradas y las de pedidos.
Pedidos que faltan en exportaciones e informes
Exportaciones, paneles e integraciones que siguen consultando las tablas antiguas.
Tiendas grandes
Migrar cientos de miles de pedidos sin afectar a una tienda en funcionamiento.
Qué cubre un encargo HPOS
- Auditoría del código a medida, el tema y las extensiones en busca de accesos directos a pedidos
- Estado de compatibilidad de cada extensión activa
- Reescritura del código incompatible con la API CRUD de WooCommerce (
wc_get_orders(),$order->get_meta()) - Un plan de migración con modo de compatibilidad y sincronización
- Verificación de los datos de pedidos antes y después del cambio
- Una vía de vuelta atrás mientras la sincronización siga activa
Qué recibes
- Un informe de auditoría: qué fallará y por qué, con referencias a archivo y línea
- Código corregido y compatible con HPOS
- Una tienda migrada con los datos de pedidos verificados
- Documentación de lo que cambió para futuros desarrolladores
Cómo se hace una migración a HPOS segura
- Auditar. Buscar en el tema, los plugins a medida y los snippets accesos directos a pedidos:
get_post_meta()oupdate_post_meta()con IDs de pedido,WP_Queryoget_posts()conshop_order, y SQL contrawp_postsowp_postmetapara pedidos. - Corregir el código para que use la API CRUD de WooCommerce, y declarar la compatibilidad con HPOS en los plugins a medida.
- Activar el modo de compatibilidad para que ambos almacenamientos se mantengan sincronizados, y dejar que la sincronización termine.
- Verificar que los datos de pedidos coinciden entre almacenamientos, primero en staging.
- Cambiar el almacenamiento principal a HPOS, manteniendo la sincronización como red de seguridad.
- Desactivar la sincronización solo cuando la tienda haya funcionado correctamente durante un tiempo.
// Antes: falla cuando HPOS es el almacenamiento principal
$po = get_post_meta( $order_id, '_po_number', true );
// Después: funciona con ambos almacenamientos
$order = wc_get_order( $order_id );
$po = $order ? $order->get_meta( '_po_number' ) : '';Recursos técnicos
Guías sobre HPOS
- WooCommerce / HPOS HPOS en WooCommerce: problemas, migración y código a medida Qué cambia con HPOS, por qué falla el código a medida y cómo migrar el almacenamiento de pedidos con seguridad.
- WooCommerce / Pedidos Problemas con los pedidos de WooCommerce Pedidos que faltan, totales erróneos, estados que no cambian, datos de pedidos incoherentes.
- WooCommerce / Integraciones Problemas de integración en WooCommerce: REST API, webhooks y sistemas externos Autenticación de la REST API, entregas de webhooks, sincronización con ERP y CRM, timeouts y datos duplicados.
FAQ
Preguntas frecuentes
¿HPOS viene activado por defecto?
En las tiendas nuevas, sí: es la opción por defecto desde WooCommerce 8.2. Las tiendas existentes mantienen el almacenamiento antiguo en entradas hasta que migran.
¿Podemos volver atrás si algo sale mal?
Mientras el modo de compatibilidad mantenga ambos almacenamientos sincronizados, es posible volver a cambiar el almacenamiento principal. Por eso la sincronización sigue activa hasta que la tienda ha funcionado correctamente con HPOS durante un tiempo.
Nuestro código usa get_post_meta() sobre pedidos. ¿Fallará?
Cuando HPOS sea el almacenamiento principal, sí: lee las tablas de entradas, que ya no son la fuente de la verdad. Usa el objeto del pedido: wc_get_order( $id )->get_meta( 'clave' ).
$ describe el problema
¿Tienes un problema con WooCommerce?Solicita un diagnóstico.
Cuéntanos qué falla, qué ha cambiado últimamente y cómo afecta al negocio. Revisamos cada solicitud y te recomendamos el siguiente paso.
Nunca envíes contraseñas, claves API ni datos de tarjetas a través del formulario.