HUSKY - Product Filter for WooCommerce

Come correggere la paginazione WooCommerce che mostra troppe pagine con il filtraggio

Se la paginazione del tuo WooCommerce mostra numeri di pagina errati quando utilizzi i filtri prodotto WOOF (HUSKY), questa guida ti aiuterà a risolverlo.

Il problema

Sintomo: Quando filtri i prodotti con WOOF/HUSKY, la paginazione mostra più pagine di quante ne esistano effettivamente.

Esempio:

  • Il filtro mostra 15 prodotti (dovrebbero essere 2 pagine)
  • La paginazione mostra: 1, 2, 3, 4, 5… (5+ pagine)
  • Cliccando sulla pagina 3+ mostra risultati vuoti o "Nessun prodotto trovato"

Cosa sta succedendo: La paginazione di WooCommerce calcola il numero di pagine basandosi sul catalogo prodotti totale, non sui risultati filtrati. WOOF filtra i prodotti, ma la paginazione non si aggiorna di conseguenza.

La soluzione

Aggiungi questo codice per forzare la paginazione a utilizzare il numero di pagine corretto dalla query filtrata di WOOF.

Passo 1: Aggiungi il codice

Aggiungilo al file functions.php del tuo tema figlio:

/**
 * 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);

Priorità 999: Assicura che venga eseguito dopo altre modifiche alla paginazione.

Passo 2: Pulisci la cache

  1. Pulisci la cache di WordPress (se utilizzi un plugin di cache)
  2. Pulisci la cache del browser (Ctrl+F5)
  3. Testa i risultati filtrati

Passo 3: Verifica

  1. Applica un filtro WOOF qualsiasi (categoria, prezzo, attributi)
  2. Controlla la paginazione in fondo alla pagina
  3. I numeri di pagina dovrebbero ora corrispondere ai risultati filtrati effettivi

Prima della correzione:

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

Dopo la correzione:

Showing 12 products Pages: 1 2 (correct!)

Come funziona

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

Cosa fa: Verifica se il filtro WOOF è attualmente attivo cercando il parametro di ricerca di WOOF nell'URL.

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

Cosa fa: Sovrascrive il totale della paginazione di WooCommerce con il numero effettivo di pagine dalla query di WordPress filtrata.

Perché priorità 999? Alcuni temi o plugin modificano la paginazione. La priorità 999 garantisce che questo codice venga eseguito per ultimo e abbia precedenza.

 

Risoluzione dei problemi

La paginazione è ancora errata

Problema: Il numero di pagine è ancora errato dopo aver aggiunto il codice

Possibili cause:

  1. Codice non nel tema figlio
    • Verifica di stare modificando il file functions.php del tema figlio
    • Gli aggiornamenti del tema genitore cancelleranno il codice se non è nel tema figlio
  2. Cache non pulita
    • Pulisci la cache del plugin di cache di WordPress
    • Pulisci la cache del server (pannello di hosting)
    • Prova in modalità incognito
  3. Il tema sovrascrive la paginazione
    • Alcuni temi utilizzano funzioni di paginazione personalizzate
    • Prova ad aumentare la priorità a 9999
    • Controlla la documentazione del tema

Soluzione: Aumenta la priorità in caso di conflitti con il tema:

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

 

Quando è necessaria questa correzione

Hai bisogno di questa correzione se:

  • ✅ Utilizzi WOOF/HUSKY per il filtraggio dei prodotti
  • ✅ La paginazione mostra più pagine di quante ne esistano
  • ✅ Cliccando su numeri di pagina alti non vengono mostrati prodotti
  • ✅ Il conteggio dei risultati filtrati non corrisponde alla paginazione