Si estás viendo este mensaje es debido a que alguno de los plugins activos en tu instalación de WordPress y WooCommerce no es compatible con la característica de almacenamiento de pedidos de alto rendimiento de WooCommerce, también conocida como HPOS.
La característica de WooCommerce de almacenamiento de pedidos de alto rendimiento (HPOS) es el nuevo sistema de almacenamiento de los datos de WooCommerce en la base de datos de WordPress, que – entre otras mejoras – ya no usa las tablas por defecto de WordPress sino las suyas propias, y es algo que deberías activar siempre que sea posible.
Ahora bien, resulta que con que solo haya un plugin activo que no sea compatible con HPOS ya no se activa esta característica, con lo que te perderás las mejoras de rendimiento que supone.
¿Y qué problema hay? ¡Busca otro plugin que sí sea compatible con HPOS!
¡Nos ha jodido, como si fuese tan fácil!
La realidad es que hay muchos plugins que no necesitan ni siquiera usar la característica de almacenamiento de pedidos de alto rendimiento, puesto que no almacenan nada en la base de datos, o que dan una solución sencilla a problemas complejos y ni siquiera necesita actualizaciones, y a veces ni siquiera hay un plugin alternativo.
¿Debemos aceptar en estos casos que no podamos usar ese plugin o el almacenamiento de pedidos de alto rendimiento?, ¿tiene solución?
¿Un problema?, ¡2 soluciones!
Tanto si eres el desarrollador de un plugin afectado por esta «incompatibilidad» como un administrador web que necesita usar un plugin concreto que WooCommerce detecta como no compatible con HPOS, tienes dos posibles maneras de que un plugin declare la compatibilidad con la característica de almacenamiento de pedidos de alto rendimiento.
Quita la compatibilidad con versiones de WooCommerce
El primer método, y realmente sencillo, es editar el archivo PHP principal del plugin y eliminar la línea WC tested up to:
No tiene misterios, simplemente borra la línea completa donde esté la declaración de compatibilidad de versiones de WooCommerce, que es para lo que sirve, y a partir de ese momento WooCommerce ya no identificará el plugin como incompatible con HPOS.
Simple, algo bobo, pero funcional.
Añade la compatibilidad con HPOS
La otra manera, la realmente correcta, de declarar la compatibilidad con el almacenamiento de pedidos de alto rendimiento es no quitar la compatibilidad con versiones de WooCommerce, algo útil para los usuarios, pero añadir un gancho de acción que declare la compatibilidad con la característica HPOS.
Esto es sencillo de implementar, y solo tienes que añadir el siguiente código al archivo PHP principal del plugin:
/* Declare HPOS compatibility */ add_action( 'before_woocommerce_init', function() { if ( class_exists( \Automattic\WooCommerce\Utilities\FeaturesUtil::class ) ) { \Automattic\WooCommerce\Utilities\FeaturesUtil::declare_compatibility( 'custom_order_tables', __FILE__, true ); } } );
Como en este ejemplo…
Guarda los cambios y – de nuevo – el plugin indicará a WooCommerce que es compatible con el almacenamiento de pedidos de alto rendimiento, pero sin tener que quitar la línea de compatibilidad de versiones de WooCommerce.
Y ya está, da igual el método elegido, ahora el plugin ya no impedirá que se active el HPOS, el almacenamiento de pedidos de alto rendimiento de WooCommerce.
¿Con esto el plugin ya usará HPOS?
¡EEEEhhhhhh! ¡Ah no!
Esto que hemos visto debes usarlo únicamente si el plugin «incompatible» no almacena nada en la base de datos.
Si el plugin hace uso de la base de datos el desarrollador (o tú) debe modificar más profundamente su código para usar el nuevo sistema de almacenamiento HPOS de WooCommerce, adaptándose al nuevo esquema de WooCommerce de almacenamiento en la base de datos.
¿Te gustó este artículo? ¡Ni te imaginas lo que te estás perdiendo en YouTube!