Se por algum motivo você quer restringir o carrinho a apenas um produto por vez, você pode usar este pequeno código abaixo:
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
/*** | |
* limpar carrinho – apenas um produto por vez | |
*/ | |
add_filter( 'woocommerce_add_to_cart_validation', 'only_one_in_cart' ); | |
function only_one_in_cart( $cart_item_data ) { | |
WC()->cart->empty_cart(); | |
return $cart_item_data; | |
} |
Basicamente ele vai limpar o carrinho antes de adicionar um novo item. Aí não há exibição de nenhuma mensagem, mas você pode facilmente adicionar um aviso ao cliente com a função wc_add_notice()
, para que ele não pense que é um erro.
Além disso, no comportamento descrito acima o novo produto é que ficará no carrinho. Utilizando os mesmos filtros é possível personalizar para que o novo item que seja bloqueado. Vai da sua criatividade e necessidade.
Este é um exemplo básico que pode ser adaptado a regras futuras.