WooCommerce: ocultar agregar al carrito si ya se compró

Ya vimos cómo ocultar agregar al carrito para usuarios desconectados y cómo averiguar si un usuario ya compró un producto determinado , así que dije por qué no combinar los dos fragmentos y averiguar cómo ocultar el botón Agregar al carrito si un ¿El cliente conectado ya ha comprado un producto?

Después de eso, sin embargo, me di cuenta de que el filtro “ woocommerce_is_purchasable ” que ofrece el complemento WooCommerce hace que la tarea sea mucho más fácil que simplemente combinar los dos mini-complementos anteriores.

Entonces, así es como se hace: ¡disfrútalo!

En caso de que un cliente haya iniciado sesión y haya comprado un producto, la página de la tienda no mostrará el botón «Agregar al carrito», sino «Leer más» en su lugar.
La página de un solo producto tampoco mostrará el botón Agregar al carrito (una vez más, en caso de que el usuario que inició sesión ya haya comprado ese producto)

Fragmento de PHP: Denegar más ventas si el usuario ya ha comprado un producto @ Tienda / Página de un solo producto

Este fragmento:

  1. Oculte Agregar al carrito por completo en la página de un solo producto
  2. Cambie el nombre de Agregar al carrito en la página de la tienda a «Leer más»
  3. Haga que sea imposible agregar el artículo al carrito incluso con una URL : mostrará un rojo «Lo sentimos, este producto no se puede comprar». error en tal caso
/**
 * @snippet       Hide Add Cart If Already Purchased - WooCommerce
 * @how-to        Get CustomizeWoo.com FREE
 * @author        Rodolfo Melogli
 * @compatible    WooCommerce 5
 * @donate $9     https://businessbloomer.com/bloomer-armada/
 */
 
add_filter( 'woocommerce_is_purchasable', 'bbloomer_hide_add_cart_if_already_purchased', 9999, 2 );
 
function bbloomer_hide_add_cart_if_already_purchased( $is_purchasable, $product ) {
   if ( wc_customer_bought_product( '', get_current_user_id(), $product->get_id() ) ) {
      $is_purchasable = false;
   }
   return $is_purchasable;
}

Deja un comentario