Olá, tudo bem?
É possível sim, mas não encontrei nenhuma solução via plugin.
Dessa forma, teria que usar algum filtro ou ação para alterar o comportamento do WooCommerce.
Eu encontrei uma publicação no Stackoverflow que fala uma forma de fazer.
Não achei 100%, então minha sugestão seria:
1 – Limitar apenas no fechamento do pedido usando a ação woocommerce_before_checkout_process
Nessa ação, você pode checar os limties da forma que achar melhor e, em caso de problema, disparar uma exceção, que será convertida em mensagem de erro no checkout:
throw new Exception( 'Você ultrapassou o limite de compras para hoje' );
2 – Controlar as vendas por dia.
“Infinitas” formas de fazer isso. Mas pode procurar pelos pedidos “de hoje” do usuário, depois pelos produtos desses pedidos e fazer sua lógica dentro disso.
Gosto dessa abordagem, principalmente porque é a mais simples.
Você vai “buscar” as informações necessárias em tempo real, mas se armazenar um “indicador de compras” do produto por usuário (como via meta dado, por exemplo) terá que considerar incrementar e decrementar esse valor de acordo com a mudança de estado dos pedidos…
Além disso, a proposta também permite “filtrar” por pedidos pagos, pendentes, etc… Não sei se serve para sua regra de negócio, mas pode ser que vá usar.
Espero ter ajudado.
Abraços.