FernandoAcosta.Netdocs

Cancelamento por dias

3 min de leituraAtualizado há 5 dias

O cancelamento por dias é uma rede de segurança. Em vez de agendar cada pedido individualmente, o plugin roda uma vez por dia, pega todos os pedidos com mais de N dias que ainda não foram pagos e cancela em massa.

Use esse modo quando:

  • Você não quer configurar prazo gateway por gateway.
  • Quer um "tempo máximo absoluto" que age sobre qualquer pedido pendente, independente do método.
  • Quer limpar pedidos antigos que escaparam do cancelamento por método de pagamento.

Os dois modos podem (e devem) ser usados juntos.

Configuração

Em WooCommerce → Configurações → Pagamento, na seção Cancelamento de pedidos, há dois campos relevantes pra esse modo:

Dias até cancelar qualquer pedido

Número de dias desde a criação do pedido. Pedidos mais antigos que isso, e que ainda batem nos status selecionados, serão cancelados.

Deixe em branco pra desativar o modo por dias.

Status para cancelar

Multi-select dos status do WooCommerce que tornam o pedido elegível pro cancelamento. Por padrão, nenhum está selecionado — você precisa escolher.

Sugestão prática:

  • Pendente (pending)
  • Em espera (on-hold)
Não inclua "Processando" ou "Concluído"

Se você incluir status que indicam pagamento confirmado (como Processando ou Concluído), o plugin pode cancelar pedidos pagos depois de N dias. Em geral só faz sentido marcar status que indicam "ainda não pago".

Como o plugin executa

O cancelamento por dias roda via WP-Cron, no hook wc_stock_manager_cancel_orders, agendado diariamente.

A cada execução:

  1. O plugin busca pedidos com data_de_criação mais antiga que N dias e cujo status está na lista configurada.
  2. Processa em lotes de até 35 pedidos por vez, com intervalos de 3 a 5 minutos entre lotes (pra não sobrecarregar o servidor).
  3. Cada pedido é mudado pra Cancelado com uma nota explicando o motivo.
  4. A restauração de estoque dispara automaticamente em seguida.

WP-Cron precisa estar funcionando

O modo por dias depende do WP-Cron. Em sites de baixo tráfego, o WP-Cron pode atrasar. Em sites onde o WP-Cron foi desabilitado (DISABLE_WP_CRON), você precisa configurar um cron de servidor.

Pra checar se o cron está agendado, rode num shell PHP ou via WP-CLI:

wp cron event list --fields=hook,next_run_relative | grep wc_stock_manager_cancel_orders

Se aparecer vazio, o cron não foi agendado. O plugin reagenda automaticamente em qualquer visita ao admin, mas se você suspeita que algo desinstalou o evento, salve as configurações novamente em WooCommerce → Configurações → Pagamento.

Diferença pro modo por gateway

Por gateway Por dias
Granularidade Minutos, por método Dias, todos os pedidos
Quem agenda Action Scheduler WP-Cron diário
Quando dispara Por pedido, no horário exato Em lote, uma vez por dia
Ideal pra Pix, cartão, boleto Limpeza geral, rede de segurança

Os dois modos coexistem sem conflito: o pedido é cancelado pelo primeiro que chegar.

Foi útil?