HUSKY - Products Filter Professional for WooCommerce

Cómo Solucionar la Paginación que Muestra Demasiadas Páginas con Filtrado WOOF

Si la paginación de tu WooCommerce muestra números de página incorrectos al usar los filtros de productos WOOF (HUSKY), esta guía lo solucionará.

El Problema

Síntoma: Al filtrar productos con WOOF/HUSKY, la paginación muestra más páginas de las que realmente existen.

Ejemplo:

  • El filtro muestra 15 productos (debería haber 2 páginas)
  • La paginación muestra: 1, 2, 3, 4, 5… (5+ páginas)
  • Al hacer clic en la página 3+ se muestran resultados vacíos o "No se encontraron productos"

Qué está sucediendo: La paginación de WooCommerce calcula el número de páginas basándose en el catálogo total de productos, no en los resultados filtrados. WOOF filtra los productos, pero la paginación no se actualiza en consecuencia.

La Solución

Añade este código para forzar la paginación a utilizar el recuento de páginas correcto de la consulta filtrada de WOOF.

Paso 1: Añadir Código

Agrega esto a tu tema secundario functions.php:

/**
 * Fix pagination page count when using WOOF filtering
 * Forces pagination to use correct max_num_pages from filtered query
 */
add_filter('woocommerce_pagination_args', function($args) {
    global $wp_query, $WOOF;
    
    // Check if WOOF filtering is active
    if ($WOOF->is_isset_in_request_data($WOOF->get_swoof_search_slug())) {
        // Force correct page count from HUSKY filtered query
        $args['total'] = $wp_query->max_num_pages;
    }
    
    return $args;
}, 999);

Prioridad 999: Asegura que esto se ejecute después de otras modificaciones de paginación.

Paso 2: Limpiar caché

  1. Borrar la caché de WordPress (si usas un plugin de caché)
  2. Borrar caché del navegador (Ctrl+F5)
  3. Prueba los resultados filtrados

Paso 3: Verificar

  1. Aplicar cualquier filtro WOOF (categoría, precio, atributos)
  2. Comprueba la paginación en la parte inferior de la página
  3. Los números de página ahora deberían coincidir con los resultados filtrados reales

Antes de la corrección:

Showing 12 products Pages: 1 2 3 4 5 6 7 8 (wrong!)

Después de la corrección:

Showing 12 products Pages: 1 2 (correct!)

Cómo Funciona

if ($WOOF->is_isset_in_request_data($WOOF->get_swoof_search_slug())) {

Lo que hace esto: Comprueba si el filtrado WOOF está actualmente activo buscando el parámetro de búsqueda de WOOF en la URL.

$args['total'] = $wp_query->max_num_pages;

Lo que hace esto: Sobrescribe el total de paginación de WooCommerce con el número real de páginas de la consulta filtrada de WordPress.

¿Por qué prioridad 999? Algunos temas o plugins modifican la paginación. La prioridad 999 asegura que este código se ejecute por último y tenga precedencia.

 

Solución de problemas

La paginación sigue mal

Problema: El recuento de páginas sigue siendo incorrecto después de agregar código

Posibles causas:

  1. Código no en tema hijo
    • Verifica que estás editando el functions.php del tema hijo
    • Las actualizaciones del tema principal borrarán el código si no están en un tema secundario
  2. Caché no borrada
    • Limpiar el plugin de caché de WordPress
    • Borra la caché del servidor (panel de hosting)
    • Probar en modo incógnito
  3. Paginación de anulación de tema
    • Algunos temas usan funciones de paginación personalizadas
    • Intenta aumentar la prioridad a 9999
    • Consultar la documentación del tema

Solución: Aumentar la prioridad si hay conflictos de temas:

add_filter('woocommerce_pagination_args', function($args) {
    // ... code ...
}, 9999); // Higher priority

 

Cuándo se necesita esta corrección

Necesitas esta corrección si:

  • ✅ Usando WOOF/HUSKY para filtrar productos
  • ✅ La paginación muestra más páginas de las que existen
  • ✅ Hacer clic en números de página altos no muestra productos
  • ✅ El recuento de resultados filtrados no coincide con la paginación