Ir al contenido
Diegol, ir a la página de inicio
  • Blog
    • WooCommerce
    • Snippets para WooCommerce
    • Guías
    • Herramientas
    • eCommerce
    • SEO
    • WordPress
  • Cursos
  • Servicios
    • Mantenimiento WooCommerce
    • Tiendas online con WooCommerce
    • TPV físico para tu tienda
    • SEO para tiendas online
    • Publicidad en redes sociales
    • Desarrollo de páginas web
  • Sobre mí
  • Blog
    • WooCommerce
    • Snippets para WooCommerce
    • Guías
    • Herramientas
    • eCommerce
    • SEO
    • WordPress
  • Cursos
  • Servicios
    • Mantenimiento WooCommerce
    • Tiendas online con WooCommerce
    • TPV físico para tu tienda
    • SEO para tiendas online
    • Publicidad en redes sociales
    • Desarrollo de páginas web
  • Sobre mí
Buscar Contactar →

Snippets para Woocommerce

Poner automáticamente los productos agotados al final en WooCommerce

Por Diegol

Actualizado el 15 de julio de 2022·2 min de lectura

Aprende en YouTubeSuscríbete gratis al canalYouTubeSígueme en LinkedInConsejos de eCommerce
Opciones de lectura
LucusHost, el mejor hosting

En otros tutoriales hemos visto la importancia de ordenar los productos en el catálogo o bien que hacer con los productos agotados. Vamos a combinar ambos conceptos: Conseguir que los que no tengan stock salgan al final del listado.

Índice

  • Aspectos a tener en cuenta
  • Mostrar los productos sin stock al final
  • Ordenarlos por cantidad de inventario
  • 13 respuestas
  • Deja una respuesta Cancelar la respuesta

Aspectos a tener en cuenta

Antes de daros la solución me gustaría que valoraseís si es necesario hacer esto, os lo recomiendo en los siguientes casos:

  • Soléis tener muchos productos agotados y no os da tiempo a ordenarlos o eliminarlos.
  • Los productos sin stock raramente los reponéis, por lo tanto no es necesario mostrarlo o pedir el mail para avisarles.
  • Os gusta dar una buena imagen y que el cliente vea siempre al principio productos de los que disponéis.

Si es este vuestro caso u os da igual y queréis hacerlo igualmente… Añadid este código a vuestro functions.php de vuestro child theme o más fácilmente a vuestro plugin Code Snippets como explico aquí.

NewsletterLo mejor de WooCommerce, directo a tu emailTutoriales, snippets y estrategias para vender más con tu tienda online. Sin spam: te das de baja cuando quieras.

Mostrar los productos sin stock al final

add_filter('posts_clauses', 'sin_stock_al_final_woocommerce');
function sin_stock_al_final_woocommerce($posts_clauses) {
    global $wpdb;
    // Solo cambiar la consulta en los bucles de WooCommerce
    if (is_woocommerce() && (is_shop() || is_product_category() || is_product_tag() || is_product_taxonomy())) {
        $posts_clauses['join'] .= " INNER JOIN $wpdb->postmeta istockstatus ON ($wpdb->posts.ID = istockstatus.post_id) ";
        $posts_clauses['orderby'] = " istockstatus.meta_value ASC, " . $posts_clauses['orderby'];
        $posts_clauses['where'] = " AND istockstatus.meta_key = '_stock_status' AND istockstatus.meta_value <> '' " . $posts_clauses['where'];
    }
    return $posts_clauses;
}

Este código no altera vuestro orden manual, solo los muestra al final del cada categoría. Pasando de esto:

mostrar los productos agotados al final automaticamente
Sin mostrarlos al final

Y cuando aplicamos el snippet:

poner productos sin stock al final woocommerce
Los muestra al final de la categoría

Recuerda que hay otras estrategias para los productos agotados, como las listas de espera.

Ordenarlos por cantidad de inventario

Otra consulta común es cómo ordenar el catálogo por los productos que más inventario tienen(algo que no viene por defecto en WooCommerce) para ello usaremos el siguiente código:

add_filter( 'woocommerce_get_catalog_ordering_args', 'dl_orden_stock_woo', 9999 );
 
function dl_orden_stock_woo( $args ) {
   $args['orderby'] = 'meta_value';
   $args['order'] = 'ASC';
   $args['meta_key'] = '_stock_status';
   return $args;
}
¡Haz clic para puntuar esta entrada!
(Votos: 8 Promedio: 4.5)
Añade diegol.top como fuente preferida de Google.
Últimas noticias de actualidad para tu tienda online.
Add as preferred source on Google
Diegol
Escrito porDiegolEspecialista en Comercio electrónico con Woocommerce. Te ayudo a crear, gestionar y publicitar tu Ecommerce en función de tu sector y público objetivo. Puedes encontrarme en Diegol.topSobre míLinkedInYouTube
Newsletter¿Te ha sido útil? Recibe el próximo en tu emailTutoriales, snippets y estrategias para vender más con tu tienda online. Sin spam: te das de baja cuando quieras.

13 respuestas

  1. sergio dice:
    marzo 9, 2021 a las 11:36 am

    muy bien explicado y me ha ayudado con una tienda que estoy llevando muchas gracias

    Responder
  2. Patowins dice:
    abril 16, 2021 a las 2:57 pm

    Buen día…
    …Probé el código y me arrojó un error:

    Detalles del error
    ==================
    Se ha producido un error del tipo E_COMPILE_ERROR en la línea 11 del archivo /wp-content/plugins/insert-php/admin/metaboxes/base-options.php(764) : eval()’d code. Mensaje de error: Cannot redeclare sin_stock_al_final_woocommerce() (previously declared in /wp-content/plugins/insert-php/includes/class.execute.snippet.php(634) : eval()’d code:2)

    Uso:
    WordPress versión 5.7.1
    Tema actual: Envo Shop (versión 1.0.9)
    Plugin actual: Woody code snippets (PHP snippets | Insert PHP) (versión 2.4.1)
    PHP versión 7.3.27

    Responder
    1. Diegol dice:
      abril 17, 2021 a las 3:09 pm

      Hola Patowins,

      Por lo que veo al insertar esta función de choca con otra funcionalidad que ya tienes instalada dentro de WordPress. Revisa los archivos que te menciona el error y busca la funcion sin_stock_al_final_woocommerce()

      Responder
      1. Patowins dice:
        abril 29, 2021 a las 9:43 pm

        Hola Diegol!

        Efectivamente, ya tenía corriendo el codigo en el archivo functions.php y no en mi plugin Code Snippets !

        Muchas gracias por tu trabajo.

        :cp

        Responder
  3. Pingback: [30] Productos Agotados ¿Qué hacer con ellos? - Locos por Woo/Podcats de WooCommerce
  4. Ricardohlazo dice:
    mayo 29, 2021 a las 5:25 pm

    Hola, hay manera de utilizar esto pero con el stock global de un producto, (de todas las variaciones) y que el cliente pueda ordenarlo?

    Gracias

    Responder
    1. Diegol dice:
      junio 1, 2021 a las 8:21 am

      Hola Ricardo, con este código no es posible.

      Cuando todas las variaciones están agotadas se pondrá al fondo.

      Un saludo!

      Responder
  5. Raúl dice:
    julio 16, 2021 a las 9:42 am

    Buenas Diego, el código me funciona perfectamente, muchas gracias.
    Este snippet envía al final del listado los productos agotados al final del listado, también en la parte de administración. ¿Se podría adaptar este código para que en la parte de administración el orden sea el «normal»?
    Un saludo y gracias de nuevo.

    Responder
    1. Diegol dice:
      julio 19, 2021 a las 9:20 am

      Hola Raúl,

      El código lo hace desde la base de datos, sería usar otro diferente del cual no dispongo por el momento. Lo apunto.

      Un saludo!

      Responder
  6. PAMELA dice:
    noviembre 26, 2021 a las 12:10 pm

    Muy buen post, me ha ayudado mucho!!

    Responder
  7. Liam dice:
    julio 6, 2022 a las 2:39 pm

    Muchas gracias, era lo que justo estaba buscando 😀

    Responder
  8. Leonardo dice:
    mayo 24, 2024 a las 2:22 pm

    Hola Diego, muchas gracias por tus videos, me han sacado de apuro varias veces ya que no soy experto en Woocommerce.

    Muchas gracias

    Responder
  9. Oscar Salas dice:
    mayo 10, 2025 a las 3:05 pm

    Muy agradecido, el código funcionó perfectamente. Gracias por la generosidad y el acto de mantener vivo el espíritu original de la internet. Un abrazo.

    Responder

Deja una respuesta Cancelar la respuesta

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

54  +    =  60

LucusHost, el mejor hosting

¿Hablamos de tu tienda online?

Cuéntame en qué punto está tu proyecto y te digo cómo puedo ayudarte a vender más con WooCommerce.

Pide tu consultoría →
Diegol, ir a la página de inicio

Consultor eCommerce especializado en WooCommerce. Ayudo a tiendas online a crecer con tecnología, SEO y publicidad, y comparto lo que sé en el blog y en YouTube.

YouTube · LinkedIn · WordPress.tv

Servicios

  • Mantenimiento WooCommerce
  • Tiendas online con WooCommerce
  • TPV físico para tu tienda
  • SEO para tiendas online
  • Publicidad en redes sociales
  • Desarrollo de páginas web
  • Todos los servicios

Aprende conmigo

  • Blog
  • Snippets para WooCommerce
  • Guías
  • Cursos en YouTube
  • Sobre mí

Legal

  • Aviso legal
  • Política de privacidad
  • Política de cookies
  • Contactar

© 2026 Diego Nieto · Consultor eCommerce

Web alojada en LucusHost

Busca entre más de 300 tutoriales, guías y snippets de WooCommerce.