Como corrigir a incompatibilidade do JetEngine com o WooCommerce 9.x
O que é incompatibilidade do JetEngine com o WooCommerce 9?
O JetEngine fica incompativel com o WooCommerce 9 porque o WooCommerce 9.x usa o HPOS (High-Performance Order Storage, ou tabelas de pedidos customizadas wc_orders) como recurso central. Todo plugin que toca em pedidos precisa declarar compatibilidade com esse recurso através de FeaturesUtil::declare_compatibility no gancho before_woocommerce_init. Quando a versão do JetEngine instalada não faz essa declaracao, o WooCommerce marca o plugin como incompativel.
O efeito pratico não e o JetEngine quebrar sozinho: o WooCommerce passa a exibir um aviso no painel e desabilita a opção de ativar o HPOS enquanto o plugin estiver na lista de incompativeis. Em lojas que já rodam com HPOS, listagens do JetEngine Query Builder que consultam pedidos por postmeta legado podem voltar vazias quando a sincronizacao entre tabelas esta desligada.
Como identificar
- Aviso no topo do painel: ‘The following plugin(s) are incompatible with the active version of WooCommerce but have not declared compatibility with our High-Performance Order Storage feature’ listando o JetEngine
- Em WooCommerce -> Settings -> Advanced -> Features a opção ‘High-Performance order storage’ aparece desabilitada com o link ‘View and manage’ apontando para extensões incompativeis
- Na página de plugins um filtro ‘Incompatible with WooCommerce feature’ lista o JetEngine ao acessar plugins.php?plugin_status=incompatible_with_feature&feature_id=custom_order_tables
- Listagens do JetEngine Query Builder do tipo WC Orders retornam vazias depois que o HPOS foi ativado e a sincronizacao com as tabelas legadas foi desligada
- Relatórios ou widgets que leem postmeta de pedidos param de exibir dados, sem erro fatal no frontend
Como prevenir
- Mantenha o JetEngine e todos os JetPlugins na versão mais recente, já que as declaracoes de compatibilidade chegam junto com as atualizações do plugin
- Antes de ativar o HPOS, abra a tela de plugins filtrada por incompatible_with_feature e resolva toda a lista, não apenas o JetEngine
- Use um ambiente de staging para ativar o HPOS e validar as listagens de pedidos antes de aplicar em producao
- Deixe o modo de compatibilidade ligado nas primeiras semanas para que qualquer consulta que ainda leia postmeta de pedidos continue funcionando
Causa
- A versão do JetEngine instalada e anterior a que passou a declarar compatibilidade com o recurso custom_order_tables do WooCommerce, entao o scanner do HPOS marca o plugin como incompativel.
- Um add-on da familia Crocoblock que le pedidos (por exemplo JetWooBuilder ou JetCompareWishlist) esta desatualizado e não declarou compatibilidade, arrastando toda a stack para a lista de incompativeis.
- A declaracao FeaturesUtil::declare_compatibility do JetEngine usa um caminho de arquivo que não bate com o slug real do plugin no servidor, entao o WooCommerce ignora a declaracao e continua sinalizando incompatibilidade.
- O HPOS foi ativado com a sincronizacao Compatibility mode desligada, e consultas do JetEngine que ainda leem a tabela wp_postmeta de pedidos voltam vazias porque os pedidos vivem apenas nas tabelas wc_orders.
- Um plugin de cache de objeto ou um mu-plugin carregou o JetEngine antes do gancho before_woocommerce_init disparar, fazendo a chamada de declaracao não registrar a tempo.
Como resolver
- Confirme qual plugin esta na lista de incompativeis: Abra a tela de plugins filtrada pelo recurso para ter certeza de que e o JetEngine e não um add-on dele. O endereco abaixo lista exatamente as extensões sinalizadas para o HPOS.
/wp-admin/plugins.php?plugin_status=incompatible_with_feature&feature_id=custom_order_tables - Atualize o JetEngine e seus add-ons para a versão mais recente: A correção oficial e atualizar. As versões atuais do JetEngine e dos JetPlugins já declaram compatibilidade com o HPOS. Atualize tudo da familia Crocoblock pelo painel ou via WP-CLI, comecando pelo próprio JetEngine.
wp plugin update jet-engine wp plugin update --all - Se não puder atualizar agora, declare a compatibilidade manualmente: Em um mu-plugin ou no functions.php do tema filho, declare a compatibilidade do JetEngine com o recurso custom_order_tables no gancho before_woocommerce_init. Aponte o caminho para o arquivo principal real do plugin.
add_action( 'before_woocommerce_init', 'wpf_jetengine_hpos' ); Arquivo alvo: wp-content/plugins/jet-engine/jet-engine.php - Mantenha a sincronizacao ligada enquanto valida: Até confirmar que as listagens do JetEngine leem pedidos do HPOS, deixe o modo de compatibilidade ligado para que pedidos existam nas duas estruturas. Ajuste isso em WooCommerce -> Settings -> Advanced -> Features.
WooCommerce -> Settings -> Advanced -> Features -> High-Performance order storage Marque: Enable compatibility mode (synchronizes orders to the posts table) - Reative o HPOS e revise as listagens de pedidos: Com o aviso de incompatibilidade resolvido, ative o armazenamento de alta performance e abra cada listagem do JetEngine que consulta pedidos para confirmar que voltaram a exibir dados.
WooCommerce -> Settings -> Advanced -> Features -> selecione High-performance order storage -> Save changes
add_action( 'before_woocommerce_init', function () {
if ( class_exists( AutomatticWooCommerceUtilitiesFeaturesUtil::class ) ) {
AutomatticWooCommerceUtilitiesFeaturesUtil::declare_compatibility(
'custom_order_tables',
WP_PLUGIN_DIR . '/jet-engine/jet-engine.php',
true
);
}
} );














