Consulta MySQL: como excluir todos os pedidos do WooCommerce

Ao gerenciar um site WooCommerce, especialmente em um ambiente de desenvolvimento ou de staging, pode haver momentos em que você precise excluir todos os pedidos. Isso pode servir para atualizar o banco de dados durante os testes ou antes de sincronizar dados de um ambiente em produção. Usar MySQL para excluir pedidos é eficiente e direto, mas deve ser feito com cuidado para evitar perda de dados em um ambiente em produção.

Importante: sempre faça primeiro um backup do seu banco de dados

Antes de executar qualquer consulta que altere o seu banco de dados, sempre garanta que tem um backup completo. Você pode fazer backup do seu banco de dados WordPress com um plugin como WP Staging ou pelo painel de controle do seu hosting.

Entendendo a estrutura do banco de dados do WooCommerce

O WooCommerce armazena as informações dos pedidos em várias tabelas do banco de dados do WordPress, incluindo:

  • wp_posts e wp_postmeta para os detalhes do pedido.
  • wp_woocommerce_order_items e wp_woocommerce_order_itemmeta para os dados específicos dos itens.
  • wp_comments e wp_commentmeta para notas de pedido e os metadados associados.

Processo passo a passo para limpar todos os pedidos do WooCommerce

Limpe os detalhes desnecessários removendo todos os metadados relacionados aos itens dos pedidos. Execute a seguinte consulta SQL para isso:

PHP
DELETE FROM wp_woocommerce_order_itemmeta;
consulta para excluir todos os metadados dos itens dos pedidos

Remova cada item de todos os pedidos, eliminando assim todas as entradas individuais de produto.

PHP
DELETE FROM wp_woocommerce_order_items;
consulta para excluir todos os itens dos pedidos

Apague todos os comentários e seus metadados associados aos pedidos, incluindo notas e instruções.

PHP
DELETE FROM wp_comments WHERE comment_type = 'order_note';
DELETE FROM wp_commentmeta WHERE comment_id NOT IN (SELECT comment_id FROM wp_comments);
consulta para excluir todos os comentários e metadados relacionados a pedidos

Remova todos os registros de pedidos junto com quaisquer metadados vinculados do seu banco de dados.

PHP
DELETE FROM wp_postmeta WHERE post_id IN (SELECT ID FROM wp_posts WHERE post_type = 'shop_order');
DELETE FROM wp_posts WHERE post_type = 'shop_order';
consulta para excluir todos os pedidos e os metadados associados

Confirmar a exclusão

Após executar essas consultas, você pode verificar se os pedidos foram excluídos executando:

PHP
SELECT * FROM wp_posts WHERE post_type = 'shop_order';
consulta para confirmar a exclusão

Se nenhum resultado for retornado, a exclusão foi bem-sucedida.

Otimização do banco de dados após a exclusão

Depois de remover uma grande quantidade de dados, é útil otimizar o banco de dados para melhorar o desempenho:

PHP
OPTIMIZE TABLE wp_posts, wp_postmeta, wp_comments, wp_commentmeta, wp_woocommerce_order_items, wp_woocommerce_order_itemmeta;
consulta de otimização do banco de dados após a exclusão

Nota sobre prefixos de tabela

Os exemplos SQL acima usam o prefixo de tabela padrão do WordPress wp_. Certifique-se de substituí-lo pelo prefixo de tabela real do seu site, conforme encontrado no arquivo wp-config.php.

Seguindo este guia, você pode gerenciar com eficiência os dados de pedidos do seu site WooCommerce, garantindo que seus processos de teste e desenvolvimento sejam o mais ágeis possível.

Artigos relacionados

Rene Hermenau

Autor: Rene Hermenau

Sobre o autor: René Hermenau é o fundador do WP STAGING. Ele trabalha com backups do WordPress, ambientes de staging, migrações, gestão de bases de dados e fluxos de implantação seguros.