Conheci algumas pessoas que precisam que o estoque do WooCommerce seja reduzido durante o checkout e não apenas depois que a compra é confirmada pelo gateway de pagamento (como acontece com o retorno automático do PagSeguro, Bcash, MoIP e MercadoPago).

Particularmente acredito que a melhor solução é bater o estoque com o retorno automático. Caso o produto acabe antes da confirmação do pagamento é possível entrar em contato com o cliente para negociar uma data ou devolver o dinheiro.

Entretanto para você que acredita que o melhor é bater durante a compra aqui vai uma solução:

Isso vai fechar o pedido como processando e reduzir o estoque.

Com certeza vai gerar problemas também caso o cliente resolva desistir da compra… Lhe obrigando a repor o estoque manualmente.

Não existe solução perfeita além de tentar manter um número adequado de produtos em estoque e também saber negociar com o cliente.