Cómo ocultar productos agotados en WooCommerce

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.

VALORA Y COMPARTE ESTE ARTÍCULO PARA MEJORAR LA CALIDAD DEL BLOG…
(6 votos, promedio: 4.5)

¿Te gustó este artículo? ¡Ni te imaginas lo que te estás perdiendo en YouTube!

5 comentarios en “Cómo ocultar productos agotados en WooCommerce”

  1. 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

  2. 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 🙁

    1. 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

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

 

Ir arriba Ir al contenido