Aunque no es una estrategia que yo suela recomendar, pues muchas veces son precisamente los productos agotados los que dan una sensación de carencia que anima a comprar (cosas de la mercadotecnia), en ocasiones es interesante ocultar productos agotados, sin existencias, en una tienda online.
Ocultar productos agotados en WooCommerce es muy sencillo a priori.
Solo tienes que ir a WooCommerce > Ajustes > Productos > Inventario
y seleccionar la casilla llamada «Ocultar en el catálogo los artículos agotados«.
Pero, si quieres tener más control sobre cómo ocultar productos agotados, puedes usar este código en tu plugin de personalizaciones o en el archivo functions.php
del tema activo:
add_action( 'pre_get_posts', 'ayudawp_ocultar_agotados' ); function ayudawp_ocultar_agotados( $q ) { if ( ! $q->is_main_query() || is_admin() ) { return; } if ( $outofstock_term = get_term_by( 'name', 'outofstock', 'product_visibility' ) ) { $tax_query = (array) $q->get('tax_query'); $tax_query[] = array( 'taxonomy' => 'product_visibility', 'field' => 'term_taxonomy_id', 'terms' => array( $outofstock_term->term_taxonomy_id ), 'operator' => 'NOT IN' ); $q->set( 'tax_query', $tax_query ); } remove_action( 'pre_get_posts', 'ayudawp_ocultar_agotados' ); }
La diferencia es que con el código se ocultan los productos agotados que tengan la taxonomía outofstock
, que afecta también a variaciones.
¿Te gustó este artículo? ¡Ni te imaginas lo que te estás perdiendo en YouTube!
Muchas gracias por el truco, yo programo un poco sobre WordPress, y de ese código me llama la atención la última lína ¿por qué pones el remove_action al final de la función? Gracias de nuevo
soy solo yo? o a alguien más le pasa que no puede copiar los codigos publicados en las entradas? 🙁
No tengo problema, los copio bien
Hola, Fernando. Una pregunta: ¿y si quiero mostrar algunos productos de los que están agotados, aunque los haya ocultado usando tanto el selector de los ajustes de Woocommerce o el código? Oculto los productos agotados, ok, pero quiero que algunos de ellos aparezcan visibles porque tengo la opción de que alguien se añada a una lista de espera para avisarle por email cuando se reponga… ¿Es posible hacer esto? Estoy buscando como un loco y la verdad es que no encuentro nada 🙁
Aunque un producto esté oculto en la tienda, con su URL siempre puedes mostrárselo a cualquiera, y los buscadores también los encuentran.
Lo de avisar por correo cuando haya stock, si permites reservas WooCommerce lo hace solito
Hola Buenos días y Feliz domingo.
Saludos, necesito una ayuda.
La opción de ocultar productos que ofrece woocomemerce, efectivamente oculta los productos, sin embargo, al tildar esa opción también oculta productos que tengo disponible y no entiendo el porqué.
Quisiera saber que otra opción pudiera usar para ocultar esos productos agotados sin que afecte los que están disponibles.
Otra cosa, es que quedan espacios en blanco donde estaban los productos agotados y la página de inicio queda desordenada.