La layered navigation (o navigazione a strati) di WooCommerce è uno strumento molto potente che permette a negozi online con categorie popolose di trovare molto più rapidamente il prodotto che si sta cercando.

Solitamente questo strumento viene applicato agli attributi di prodotto, che altro non sono che tassonomie generiche ulteriori che possono essere utilizzate per non “appesantire” l’uso delle categorie.
Prendiamo per esempio un negozio e-commerce di vini. Sarebbe molto sensato associare i prodotti in categorie principali come ad esempio “vini bianchi”, “vini rossi”, “vini rosati”, etc., ma raggruppare i vini in categorie ulteriori come “zona di produzione”, “produttore” o addirittura “abbinamenti ideali” renderebbe sicuramente caotico il menu.

E’ per questo motivo che filtrare queste ultime tassonomie secondarie all’interno della categoria principale risulta la soluzione più performante.

Un’esempio visivo comunque renderà tutto molto più chiaro:

il filtro "prodotti attivi" di WooCommerce
I prodotti della categoria “vino rosso” sono filtrabili per “zona di produzione”, per “pertinenza di abbinamento ai cibi” o addirittura per “fascia di prezzo”. Comodo no?

Il widget “Filtri prodotto attivi” di WooCommerce permettere di riassumere in un’unica posizione tutti i filtri applicati e di disabilitarli ad uno ad uno. Del resto però, opportuni stili CSS rendono comunque già evidente quali filtri sono stati applicati ed è comunque previsto dal software disabilitarli semplicemente cliccando il loro link.
Quello che manca è piuttosto la possibilità di disabilitarli tutti contemporaneamente con 1 solo click. Ciò renderebbe inoltre inutile la presenza del widget “Filtri prodotto attivi”, permettendo così di liberare spazio per i contenuti!

Creare un widget per WooCommerce per azzerare i filtri di prodotto in un solo click

widget con codice personalizzato per l'azzeramento di tutti i filtri attivi
un’unica azione cancella tutti i filtri applicati e ci permette di libera spazio nella pagina

Il codice da utilizzare è quello che trovate qui di seguito, e potete inserirlo cosi com’è dove volete che appaia, o creare una funzione dentro il file functions.php del vostro tema WordPress e invocarla.

<?php
	$filterreset = $_SERVER['REQUEST_URI'];
	if ( strpos($filterreset,'?filter_') !== false | strpos($filterreset,'?min_price') !== false | strpos($filterreset,'?max_price')) {
		$filterreset = strtok($filterreset, '?');
		echo '<a href="'.$filterreset.'">Rimuovi filtri</a>';
	};
?>

Come funziona il codice del widget che azzera i filtri in un solo click

  • il codice controlla se sono stati applicati filtri (filtri di attributi standard o il filtro min_price e un filtro max_price).
  • se i filtri non sono applicati non fa nulla, se un qualsiasi filtro viene applicato allora solo in questo caso mostra il link “Rimuovi filtri”.
  • l’URL del link “Rimuovi filtri” è l’indirizzo della pagina corrente, ma con i parametri del filtro rimossi. Quando l’utente clicca il link la pagina viene ricaricata con i filtri rimossi.

se ti piace questa pagina condividila