Lojas Prontas: WooCommerce “Hackeado” Para Solução Exclusiva de Backup Automático

Atenção, conteúdo altamente técnico! Pode ser que nem eu entenda amanhã…

A mais importante, mais difícil e mais complicada implementação do WooCommerce que já realizei. Foram ao menos 2 anos de estudos para poder terminar essa implementação, a requisição da “equipe” de engenharia e projetos era simples: queremos automatizar o backup e sincronia de pedidos (orders). Assim, após a criação do plugin “F5 Sites | WordPress MySQL Manager”, ficou fácil fazer backups e uploads de dados, bastava que as tabelas tivessem o mesmo prefixo, por exemplo, site1_.

Mas o WooCommerce herdou os problemas de estrutura de dados do próprio WordPress, uma zona, fica tudo misturado no banco de dados (produtos, pedidos, posts, menus…). Então precisei criar hooks para a função get_wc_order e get_wc_orders (alterando o core do woo), além de implementar na marra as modificações no core do plugin, inserindo “6woo_” antes dos prefixos das tabelas woocommerce_items e woocommerce_itemmeta. Assim, essa solução hackeada não é de longe a melhor possível, mas a questão principal é, funciona melhor que o original, permite automação dos pedidos sem misturar os produtos, e apesar da bagunça, é excelente.

Foi difícil fazer, muito complexo e exigiu a integração de 3 plugins próprios:

  • F5 Sites | WordPress MySQL Manager
  • F5 Sites | WooCommerce shop_order Tables
  • F5 Sites | Shared Posts and Tables + Uploads Folder
  • Fork exclusivo do WooCommerce, para funcionar os 3 acimas de maneira graciosa

Assim, essa notícia, muito técnica e confusa, serve só para anunciar que a loja de chaveiro e anúncios pode começar a operar sem problemas, um marco na história do projeto. Teremos um post mais bonitinho e comercial para iniciar as atividades de vendas, esse daqui é só um registro histórico de que, após anos de testes e implementações, o esquema de backup de dados está 100% funcional, no product backlog várias tarefas foram concluídas com essa realização.

Confira o plugin: