Ocultar productos de una categoría en WooCommerce

A veces se necesita ocultar productos de una categoría en WooCommerce WordPress para que no aparezcan en la página principal de la tienda, pero sí en otras. Con este código podrás conseguirlo. Recuerda escribirlo en el archivo functions.php del tema activo de tu web.

add_action( 'pre_get_posts', 'custom_pre_get_posts_query' );
 
function custom_pre_get_posts_query( $q ) {
 
  if ( ! $q->is_main_query() ) return;
	if ( ! $q->is_post_type_archive() ) return;
	
	if ( ! is_admin() && is_shop() ) {
 
		$q->set( 'tax_query', array(array(
			'taxonomy' => 'product_cat',
			'field' => 'slug',
			'terms' => array( 'Otros' ), // Nombre de la categoría a ocultar
			'operator' => 'NOT IN'
		)));
	
	}
 
	remove_action( 'pre_get_posts', 'custom_pre_get_posts_query' );
 
}

Con este sencillo código los productos de la categoría Otros (cámbialo por el nombre de tu categoría a ocultar) no se visualizarán en la página principal, pero por ejemplo si te creas una página especifica para mostrar estos productos se verán correctamente.

3 comentarios en “Ocultar productos de una categoría en WooCommerce

  1. Hola Miguel. Quiero agradecerte por este código, es oro puro. Lo había estado buscando muchos días. Los códigos que me encontraba en internet, deshabilitaban por completo de las páginas de categorías a los productos. Pero justo necesitaba que el producto desapareciera de la shop, pero que estuviera disponible en la página de la propia categoría. Mil gracias, justo lo que buscaba. Saludos.

Escribir un comentario