Oferta SiteGround Black Friday

WooCommerce: Añadir filtrado por productos destacados

Ayer sin ir más lejos me preguntó Rafa, que me asalta de vez en cuando con preguntas de estas raras, que si se podía filtrar por productos destacados en los listados de WooCommerce, y tras hacer unas pruebas con slugs me di cuenta de que no.

Es verdad que yo nunca lo había necesitado ni ningún cliente me lo había pedido, pero la realidad es que es algo que no se puede hacer.

Pero claro, es que WooCommerce es WordPress, de código abierto, y en realidad sí que se puede hacer de todo, solo hay que dar con el código adecuado, y el código existía.

Así que si quieres, por el motivo que sea, añadir un desplegable para poder filtrar productos para mostrar solo los destacados, debes añadir el siguiente código a tu plugin de personalizaciones para WooCommerce, o en su defecto al final del archivo functions.php del tema activo:

/* Añadir desplegable para filtrar productos destacados */
add_action('restrict_manage_posts', 'featured_products_sorting');
function featured_products_sorting() {
    global $typenow;
    $post_type = 'product'; // puedes cambiar esto si es para otro tipo de contenido
    $taxonomy  = 'product_visibility'; // cambiar a tu taxonomía
    if ($typenow == $post_type) {
        $selected      = isset($_GET[$taxonomy]) ? $_GET[$taxonomy] : '';
        $info_taxonomy = get_taxonomy($taxonomy);
        wp_dropdown_categories(array(
            'show_option_all' => __("Mostrar todas las {$info_taxonomy->label}"),
            'taxonomy'        => $taxonomy,
            'name'            => $taxonomy,
            'orderby'         => 'name',
            'selected'        => $selected,
            'show_count'      => true,
            'hide_empty'      => true,
        ));
    };
}
add_filter('parse_query', 'featured_products_sorting_query');
function featured_products_sorting_query($query) {
    global $pagenow;
    $post_type = 'product'; // puedes cambiar esto si es para otro tipo de contenido
    $taxonomy  = 'product_visibility'; // cambiar a tu taxonomía
    $q_vars    = &$query->query_vars;
    if ( $pagenow == 'edit.php' && isset($q_vars['post_type']) && $q_vars['post_type'] == $post_type && isset($q_vars[$taxonomy]) && is_numeric($q_vars[$taxonomy]) && $q_vars[$taxonomy] != 0 ) {
        $term = get_term_by('id', $q_vars[$taxonomy], $taxonomy);
        $q_vars[$taxonomy] = $term->slug;
    }
}

Si te pasas por el listado de productos verás un nuevo desplegable…

Dónde podrás filtrar por productos destacados y que se muestren solo estos:

Así que aquí lo tienes, y como ves, claro que se puede.

¿De cuánta utilidad te ha parecido este contenido?

¡Haz clic en los emoticonos para valorarlo!

Promedio de puntuación 5 / 5. Total de votos: 4

Hasta ahora ¡no hay votos!. Sé el primero en valorar este contenido.

Ya que has encontrado útil este contenido...

¡Sígueme en las redes sociales!

¡Siento que este contenido no te haya sido útil!

¡Ayúdame a mejorar este contenido!

Por favor, dime, ¿cómo puedo mejorarlo?

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

Sobre el autor

3 comentarios en “WooCommerce: Añadir filtrado por productos destacados”

Deja un comentario

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

Información base sobre privacidad:
- Responsable: Fernando Tellado ([email protected])
- Fin del tratamiento: Moderación de comentarios para evitar spam
- Legitimación: Tu consentimiento
- Comunicación de los datos: No se comunicarán los datos a terceros salvo por obligación legal
- Derechos: Acceso, rectificación, portabilidad, olvido

 

Scroll al inicio