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.
¿Te gustó este artículo? ¡Ni te imaginas lo que te estás perdiendo en YouTube!
Jajjajajaj, no descansamos ni con el aislamiento!!!
Mil gracias, me has solucionado un dolor de cabeza con un cliente que tiene varios cientos de productos.
Buenísimo!!! Ahora falta que alguien haga lo mismo pero para poder filtrar los productos en oferta!! Gracias