🎉 USE O CUPOM DESCONTO.FULL | 20% OFF acima de R$ 50,00

Como corrigir a incompatibilidade do JetEngine com o WooCommerce 9.x

Time Full Services Time Full Services
Tipo Page Builders
Nome do erro Incompatibilidade do JetEngine com WooCommerce 9.x EN: JetEngine incompatible with WooCommerce 9.x
Severidade Grave
Descrição A incompatibilidade do JetEngine com o WooCommerce 9 surge quando o WooCommerce ativa o HPOS (custom order tables) e o JetEngine instalado não declarou compatibilidade com o recurso, o que trava o botao de ativar o armazenamento de pedidos.

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
Antes de começar: Faca backup do banco de dados antes de ativar ou alternar o HPOS. A migração move pedidos entre estruturas de tabela e, sem o modo de compatibilidade ligado, voltar atras com pedidos novos já gravados pode exigir restauração.

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

  1. 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
  2. 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
  3. 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
  4. 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)
  5. 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
PHP
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
        );
    }
} );

Perguntas frequentes

O JetEngine e compativel com o WooCommerce 9 e o HPOS?
Sim. As versões atuais do JetEngine declaram compatibilidade com o recurso custom_order_tables do WooCommerce. O aviso de incompatibilidade aparece quando a copia instalada esta desatualizada ou quando um add-on da Crocoblock que le pedidos não declarou suporte.
Posso simplesmente desligar o HPOS para resolver?
Pode, como medida temporaria. Em WooCommerce -> Settings -> Advanced -> Features e possível manter o armazenamento legado, o que remove o bloqueio. Mas a correção definitiva e atualizar o JetEngine, porque o HPOS e o padrão do WooCommerce 9 e tende a ser obrigatório.
Por que o botao de ativar o HPOS aparece desabilitado?
O WooCommerce bloqueia a ativacao do HPOS enquanto existir algum plugin ativo na lista de incompativeis. Enquanto o JetEngine ou um add-on dele estiver sinalizado, a opção fica travada com o link View and manage at remover o plugin da lista.
Atualizar o JetEngine apaga meus pedidos ou listagens?
Não. Atualizar o plugin apenas adiciona a declaracao de compatibilidade e correcoes. Os pedidos vivem no banco do WooCommerce, não no JetEngine. Ainda assim, faca backup antes de alternar o HPOS, porque essa troca move dados entre tabelas.
Minhas listagens do JetEngine ficaram vazias depois de ativar o HPOS, e normal?
Pode acontecer quando a consulta le pedidos via postmeta legado e a sincronizacao esta desligada. Ative o modo de compatibilidade em WooCommerce -> Settings -> Advanced -> Features para que os pedidos existam nas duas estruturas enquanto você ajusta as queries do Query Builder.
Declarei a compatibilidade manualmente e o aviso continua, por que?
Quase sempre o caminho do arquivo passado para FeaturesUtil::declare_compatibility não bate com o arquivo principal real do plugin, ou o código rodou depois do gancho before_woocommerce_init. Confirme o caminho jet-engine/jet-engine.php e que a declaracao roda dentro desse gancho.
Onde vejo todos os plugins incompativeis com o HPOS de uma vez?
Na tela de plugins, acesse plugins.php com o filtro plugin_status=incompatible_with_feature e feature_id=custom_order_tables. Ela mostra cada extensão ativa que ainda não declarou compatibilidade, para você tratar a stack inteira e não so o JetEngine.

Seja PRO.

Tenha acesso a snippets de código premium — PHP, JavaScript, CSS e HTML prontos para usar em seus projetos.

Conhecer o plano Pro →

Uma nova era para o WordPress.

A FULL Services redefine o CMS com uma arquitetura modular que transforma o WordPress em um motor de crescimento digital. 

Painéis personalizados

Um novo nível de controle para o WordPress. Acompanhe métricas, automações e evolução do seu site em um único painel visual.

A força por trás de grandes marcas

Para agências, estúdios e profissionais independentes que desejam oferecer soluções de alto nível com sua própria marca.

Componentes

Hero Sections

30 componentes

Seções de CTA

14 componentes

Login

14 componentes

Blog

14 componentes

Cabeçalhos

24 componentes

Seções de FAQ

53 componentes

Cadastro

53 componentes

Blog individual

53 componentes

Rodapés

28 componentes

Seções de contato

27 componentes

Seções de preços

27 componentes

Faixas

27 componentes

Portfólio

16 componentes

Seções de equipe

12 componentes

Números

12 componentes

Logotipos

12 componentes