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() );