HUSKY - Products Filter Professional for WooCommerce

Como Corrigir Paginação Exibindo Muitas Páginas com Filtro WOOF

Se a paginação do seu WooCommerce exibir números de página incorretos ao usar os filtros de produtos WOOF (HUSKY), este guia irá corrigi-lo.

O Problema

Sintoma: Ao filtrar produtos com WOOF/HUSKY, a paginação mostra mais páginas do que realmente existem.

Exemplo:

  • O filtro mostra 15 produtos (deveriam ser 2 páginas)
  • Paginação exibe: 1, 2, 3, 4, 5… (5+ páginas)
  • Clicar na página 3+ exibe resultados vazios ou “Nenhum produto encontrado”

O que está acontecendo: A paginação do WooCommerce está calculando o número de páginas com base no catálogo total de produtos, não nos resultados filtrados. O WOOF filtra os produtos, mas a paginação não é atualizada de acordo.

A Solução

Adicione este código para forçar a paginação a usar a contagem correta de páginas da consulta filtrada do WOOF.

Etapa 1: Adicionar Código

Adicione isso ao seu tema filho 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);

Prioridade 999: Garante que isso seja executado após outras modificações de paginação.

Etapa 2: Limpar Cache

  1. Limpar cache do WordPress (se usar plugin de cache)
  2. Limpar cache do navegador (Ctrl+F5)
  3. Testar resultados filtrados

Passo 3: Verificar

  1. Aplicar qualquer filtro WOOF (categoria, preço, atributos)
  2. Verifique a paginação na parte inferior da página
  3. Os números de página agora devem corresponder aos resultados filtrados reais

Antes da correção:

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

Após correção:

Showing 12 products Pages: 1 2 (correct!)

Como Funciona

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

O que isso faz: Verifica se a filtragem WOOF está atualmente ativa procurando o parâmetro de pesquisa do WOOF na URL.

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

O que isso faz: Substitui a paginação do WooCommerce pelo número real de páginas da consulta filtrada do WordPress.

Por que prioridade 999? Alguns temas ou plugins modificam a paginação. Prioridade 999 garante que este código seja executado por último e tenha precedência.

 

Solução de Problemas

Paginação ainda errada

Problema: Contagem de páginas ainda incorreta após adicionar o código

Causas possíveis:

  1. Código não no tema filho
    • Verifique se você está editando o functions.php do tema filho
    • Atualizações do tema pai apagarão o código se não estiverem no tema filho
  2. Cache não limpo
    • Limpar plugin de cache do WordPress
    • Limpar cache do servidor (painel de hospedagem)
    • Teste em modo anônimo
  3. Paginação de substituição de tema
    • Alguns temas usam funções de paginação personalizadas
    • Tente aumentar a prioridade para 9999
    • Verifique a documentação do tema

Solução: Aumente a prioridade em caso de conflitos de tema:

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

 

Quando este conserto é necessário

Você precisa desta correção se:

  • ✅ Usando WOOF/HUSKY para filtragem de produtos
  • ✅ A paginação mostra mais páginas do que existem
  • ✅ Clicar em números de página altos não mostra produtos
  • ✅ A contagem de resultados filtrados não corresponde à paginação