WooCommerce - Ocultar "Añadir al carrito" en productos gratuitos
Estoy usando WooCommerce y buscando una forma de ocultar el botón "Añadir al carrito" en
la página de un producto SI el producto es gratuito. Estoy haciendo una gran importación CSV y algunos precios de productos están establecidos en cero. Solo quiero ocultar el botón "añadir al carrito" en estos productos, para que no se puedan comprar.
Ya pregunté esto en la página de soporte, pero sin éxito.
Saludos
Observa el inicio de las plantillas de "añadir al carrito" en WooCommerce. Al principio hay una verificación para determinar si el producto se puede comprar. Dentro del método is_purchasable()
en la clase del producto hay un filtro. Por defecto, el producto no es comprable si no tiene ningún precio establecido, pero eso se puede extender para incluir productos cuyo precio esté establecido en 0.
function wpa_109409_is_purchasable( $purchasable, $product ){
if( $product->get_price() == 0 )
$purchasable = false;
return $purchasable;
}
add_filter( 'woocommerce_is_purchasable', 'wpa_109409_is_purchasable', 10, 2 );

@helgatheviking, tus muchas respuestas aquí son invaluables. ¡Sigo encontrándolas una y otra vez! ¡Gracias!

De nada @peteroak, me alegra que te hayan resultado útiles. Paso demasiado tiempo aquí :) (ahora más en SO en la etiqueta de WooCommerce, pero aún así)

¡SÍ! Estaba agregando una cantidad ridícula de condicionales a los archivos de plantilla para verificar un valor propietario y saber si un usuario podía comprar algo. En su lugar, usé este filtro (que por alguna razón pasé por alto por completo) - ¡SOLUCIONADO! Gracias, Kathy.

Hola @helgatheviking, ¿es posible agregar una descripción del producto o un mensaje en la página para esos productos específicos cuando están ocultos para el carrito?

He encontrado una solución enganchando "woocommerce_single_product_summary" con "$product->is_purchasable()"

Por alguna razón, nuestro sitio no mostraba un botón de agregar al carrito para un producto con precio 0.00, así que agregamos este código y ahora está agregando el botón de agregar al carrito a productos que no tienen ningún precio ingresado (preferiríamos que no apareciera el botón en estos casos). ¿Alguna sugerencia? add_filter( 'woocommerce_is_purchasable', 'wpa_109409_is_purchasable', 10, 2 ); function wpa_109409_is_purchasable( $purchasable, $product ){ if( $product->get_price() >= 0.00) $purchasable = true; return $purchasable; }

Según lo que he entendido de tu problema... WooCommerce tiene una opción cuando no pones ningún precio, el botón no aparecerá en absoluto..
Tu producto se convierte en una simple galería/catálogo..
Si eso es lo que buscas... quizás la forma más fácil sería editar tu archivo CSV... solo busca y reemplaza los ceros con espacios en blanco..
