jQuery(document).ready(function($) {
// Definisci il limite massimo di selezioni
var maxSelezioni = 3;
// Funzione per controllare e bloccare le checkbox
function gestisciLimiteFiltri() {
// Intercetta ogni blocco di filtri (Filter Everything usa solitamente la classe .wpc-filter-section)
$('.wpc-filter-section').each(function() {
var $blocco = $(this);
// Conta quante checkbox sono attualmente selezionate in QUESTO blocco
var selezionati = $blocco.find('input[type="checkbox"]:checked').length;
if (selezionati >= maxSelezioni) {
// Se il limite è raggiunto, disabilita solo le checkbox NON ancora selezionate
$blocco.find('input[type="checkbox"]').not(':checked').prop('disabled', true);
// Opzionale: aggiungi una classe CSS per rendere graficamente opache le opzioni disabilitate
$blocco.find('.wpc-filter-item').not('.wpc-filter-item-checked').css('opacity', '0.5');
} else {
// Se siamo sotto il limite, assicurati che tutto sia abilitato
$blocco.find('input[type="checkbox"]').prop('disabled', false);
$blocco.find('.wpc-filter-item').css('opacity', '1');
}
});
}
// Esegui il controllo al caricamento della pagina
gestisciLimiteFiltri();
// Esegui il controllo ogni volta che l'utente clicca su una checkbox
$(document).on('change', '.wpc-filter-section input[type="checkbox"]', function() {
gestisciLimiteFiltri();
});
// CRUCIALE PER FILTER EVERYTHING: Riavvia il controllo dopo l'aggiornamento AJAX dei filtri
$(document).on('wpcFiltersExecuted', function() {
gestisciLimiteFiltri();
});
});