Skip to content

Conversation

@lucastgama
Copy link
Contributor

O que mudou

Esta atualização adapta o plugin Vindi WooCommerce para funcionar com o High-Performance Order Storage (HPOS) do WooCommerce, garantindo compatibilidade com as versões mais recentes sem perder dados durante a transição do armazenamento tradicional para o HPOS.

Motivação

O WooCommerce está migrando para uma nova forma de armazenamento de dados (HPOS) que não utiliza mais postmeta para armazenar informações de pedidos e assinaturas. O código antigo do plugin dependia fortemente do sistema de meta posts do WordPress, tornando-o incompatível com este novo sistema de armazenamento.

Solução proposta

Foi implementada uma abordagem dupla para manipulação de metadados:

  1. Substituição de chamadas get_post_meta() e update_post_meta() diretas por métodos de objeto como get_meta() e update_meta_data() seguido de save()
  2. Revisão completa das consultas que buscavam pedidos por metadados para utilizar a nova API de consulta WC_Order_Query
  3. Atualização de scripts de interface de usuário para funcionar corretamente na nova interface HPOS

As principais alterações incluem:

  • Atualização da versão do plugin para 1.3.9
  • Refatoração de todos os controladores e serviços para usar a API de metadados de objetos
  • Implementação de métodos compatíveis para consultas de dados entre os dois sistemas
  • Melhorias na interface do usuário para compatibilidade com o novo sistema

Como testar

  1. Instale o WooCommerce 8.6 ou superior
  2. Habilite o HPOS nas configurações avançadas do WooCommerce
  3. Verifique se os produtos de assinatura existentes mantêm seus metadados
  4. Crie novos produtos de assinatura e verifique se os IDs Vindi são armazenados corretamente
  5. Processe um pedido com assinatura para verificar se os metadados são salvos corretamente
  6. Teste webhooks para confirmar que os pedidos ainda podem ser localizados pelos IDs de fatura Vindi

Principais arquivos modificados

As mudanças mais significativas foram em:

  • Substituição de get_post_meta() por $object->get_meta()
  • Atualização das funções de consulta de pedidos para usar WC_Order_Query
  • Refatoração dos scripts de UI para funcionarem com a nova interface HPOS
  • Atualização dos testes unitários para trabalhar com a nova abordagem de metadados

@lucastgama lucastgama requested a review from a team as a code owner June 5, 2025 13:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant