FernandoAcosta.Netdocs

Hooks e filtros

3 min de leituraAtualizado há 5 dias

Esta é a referência completa dos hooks e filtros que o plugin WC Redução e restauração de estoque expõe pra extensão. Use os snippets em Personalizando o plugin como ponto de partida pra casos comuns.

Actions

woocommerce_restore_order_stock

Disparado depois do plugin restaurar estoque manualmente via metabox lateral do pedido. Não dispara pelas restaurações automáticas (essas usam os hooks de status do WooCommerce).

do_action( 'woocommerce_restore_order_stock', $order );
Parâmetro Tipo Descrição
$order WC_Order Pedido cujo estoque foi restaurado

wc_stock_manager_cancel_orders

Cron diário (daily) do modo Cancelamento por dias. O callback principal já está conectado pelo plugin. Reagende ou desagende com cuidado.

do_action( 'wc_stock_manager_cancel_orders' );

Sem parâmetros.

wc_stock_manager_cancel_orders_execute

Callback do Action Scheduler que executa um lote de cancelamentos genéricos. Recebe o array de IDs.

do_action( 'wc_stock_manager_cancel_orders_execute', $unpaid_order_ids );
Parâmetro Tipo Descrição
$unpaid_order_ids int[] IDs dos pedidos a cancelar nesse lote

wc_stock_manager_cancel_single_order

Callback do Action Scheduler agendado por gateway. Cancela um único pedido se ele continuar não pago.

do_action( 'wc_stock_manager_cancel_single_order', $order_id );
Parâmetro Tipo Descrição
$order_id int ID do pedido a verificar/cancelar

Filtros

woocommerce_can_reduce_order_stock

Controla se o pedido pode ter estoque reduzido. Retorne false pra bloquear a redução.

apply_filters( 'woocommerce_can_reduce_order_stock', $can_reduce, $order );
Parâmetro Tipo Descrição
$can_reduce bool Decisão atual (a partir de outros plugins/filtros)
$order WC_Order Pedido em avaliação

Retorno: bool.

woocommerce_can_restore_order_stock

Equivalente ao anterior, mas pra restauração.

apply_filters( 'woocommerce_can_restore_order_stock', $can_restore, $order );
Parâmetro Tipo Descrição
$can_restore bool Decisão atual
$order WC_Order Pedido em avaliação

Retorno: bool.

wc_stock_manager_restore_on_{status}

Trio de filtros, um pra cada evento de restauração automática. {status} pode ser cancelled, refunded ou failed.

apply_filters( 'wc_stock_manager_restore_on_cancelled', $restore );
apply_filters( 'wc_stock_manager_restore_on_refunded',  $restore );
apply_filters( 'wc_stock_manager_restore_on_failed',    $restore );
Parâmetro Tipo Descrição
$restore bool true por padrão

Retorno: bool. Retorne false pra pular a restauração naquele status específico.

wcsrm_not_enough_stock_message

Mensagem exibida ao cliente quando a validação no pagamento bloqueia a transação por estoque insuficiente.

apply_filters( 'wcsrm_not_enough_stock_message', $message, $product, $item, $order );
Parâmetro Tipo Descrição
$message string Texto padrão
$product WC_Product Produto sem estoque suficiente
$item WC_Order_Item_Product Item do pedido
$order WC_Order Pedido sendo pago

Retorno: string (a mensagem final).

wcsrm_log_attempts

Controla se tentativas de redução duplicada de estoque viram nota no pedido. Útil pra rastrear conflitos com outros plugins.

apply_filters( 'wcsrm_log_attempts', $log_attempts );
Parâmetro Tipo Descrição
$log_attempts bool false por padrão

Retorno: bool. Retorne true pra ativar.

woocommerce_order_item_quantity

Filtro nativo do WooCommerce, usado pelo plugin durante a validação no pagamento pra ajustar a quantidade efetiva considerada na checagem.

apply_filters( 'woocommerce_order_item_quantity', $quantity, $order, $item );
Parâmetro Tipo Descrição
$quantity int|float Quantidade do item
$order WC_Order Pedido
$item WC_Order_Item_Product Item

Retorno: int\|float.

woocommerce_before_pay_action

Filtro nativo do WooCommerce que dispara antes do pagamento de um pedido pendente ser processado. O plugin engata aqui pra validar estoque.

apply_filters( 'woocommerce_before_pay_action', $order );
Parâmetro Tipo Descrição
$order WC_Order Pedido sendo pago

Retorno: WC_Order (passe adiante o que recebeu, a menos que precise interromper).

Meta data e flags

Meta _reduced_stock (item do pedido)

Marca em cada item indicando que o estoque foi reduzido. Usada pra evitar redução/restauração duplicada.

$reduced = $item->get_meta( '_reduced_stock', true );

// Limpar manualmente:
$item->delete_meta_data( '_reduced_stock' );
$item->save();

Flag de pedido stock_reduced (via data store)

Marca no nível do pedido. Acessada pelo data store, não como meta direto.

$reduced = $order->get_data_store()->get_stock_reduced( $order->get_id() );

$order->get_data_store()->set_stock_reduced( $order, true );

Option wc_stock_reduce_migrate_from_hours_to_minutes

Timestamp que registra quando rodou a migração de horas pra minutos da v2.0.0. Apague esse option se você precisar forçar a migração novamente (situação rara).

Funções auxiliares

wc_stock_manager_log( $message )

Grava uma mensagem no log do plugin (apenas se Ativar Log estiver marcado em WooCommerce → Configurações → Pagamento → Debug).

wc_stock_manager_log( 'Algo aconteceu com o pedido ' . $order->get_id() );
Foi útil?