Recentemente, o WooCommerce introduziu o “High-Performance Order Storage” [HPOS] para as encomendas como uma funcionalidade beta, que podes ativar para guardar os dados das encomendas em tabelas da base de dados separadas com os seguintes nomes:
- _wc_orders
- _wc_orders_meta
- _wc_order_addresses
- _wc_order_operational_data
- _wc_order_coupon_lookup
- _wc_order_product_lookup
- _wc_order_stats
- _wc_order_tax_lookup
- wp_woocommerce_order_items
- wp_woocommerce_order_itemmeta
Este guia explica como podes usar esta funcionalidade para evitar que as encomendas no site de Staging substituam as encomendas no site em produção sempre que envias um site de Staging para o site em produção. Para tal, segue estes passos:
Contents
Ativar o HPOS tanto no site em produção como no site de Staging:
Nota: O HPOS está em desenvolvimento intenso e ainda é trabalho em curso. Podes encontrar instruções mais detalhadas no artigo oficial do WooCommerce sobre HPOS.
Vai a (WooCommerce > Settings > Advanced > Features) e seleciona a opção “High-performance order storage” como nesta imagem, tanto no site de Staging como no de produção, e certifica-te de que “Enable compatibility mode” também está marcada.

Após este passo, o WooCommerce vai começar a sincronizar as encomendas da tabela _posts habitual para a nova tabela _wc_orders. Pode ser preciso esperar alguns minutos até a sincronização terminar.
Mais uma vez, é obrigatório fazer estes passos tanto no site em produção como no de Staging.
Excluir as tabelas de encomendas do WooCommerce durante o processo de push
Agora, quando chegar o momento de enviar um site de Staging para o site em produção, podes excluir estas tabelas:

E as encomendas do WooCommerce do teu site em produção vão permanecer iguais após o push, sem serem substituídas pelas do site de Staging.
Evitar pagamentos duplicados: excluir as tabelas do ActionScheduler
Ao enviar ou migrar um site WooCommerce que usa WooCommerce Subscriptions ou outras tarefas agendadas, existe o risco de desencadear ações duplicadas (como pagamentos recorrentes) no site de destino.
Para evitar que estas ações sejam disparadas duas vezes, tens de excluir as tabelas do ActionScheduler do processo de migração/push:
{prefix}_actionscheduler_actions{prefix}_actionscheduler_logs{prefix}_actionscheduler_claims{prefix}_actionscheduler_groups
Nota: Substitui {prefix}_ pelo prefixo específico da base de dados do teu site de Staging.
Como nesta imagem:

Artigos relacionados
- Implementação inicial das tabelas personalizadas do WooCommerce pronta para testes HPOS
- Saltar encomendas e produtos WooCommerce
- Como apagar todas as encomendas e dados de clientes do WooCommerce no site de Staging | apagar transações WooCommerce
- Duas formas fáceis de fazer Backup da base de dados WooCommerce no WP