Skip to content

Instantly share code, notes, and snippets.

@neilgee
Created May 2, 2018 04:50
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save neilgee/fec26cdab4a28ff57982012c4ad24155 to your computer and use it in GitHub Desktop.
Save neilgee/fec26cdab4a28ff57982012c4ad24155 to your computer and use it in GitHub Desktop.
WooCommerce Product Category Accordion Menu
// Category Accordion
// Example - http://dev.rose.websitelove.com.au/shop/
if ($('.wgs-side-woo ul.product-categories').length > 0) {
var lcP = $('.wgs-side-woo li.cat-parent'), lcPF = $('.wgs-side-woo li.cat-parent.cat-item-2204');
var lcPC = $('.wgs-side-woo li.current-cat'), lcPCP = $('.wgs-side-woo li.current-cat-parent');
lcP.prepend('<span class="toggle"><i class="fa fa-minus-square-o fa-plus-square-o"></i></span>');
lcP.parent('ul').addClass('has-toggle'); lcP.children('ul').hide();
if (lcP.hasClass("current-cat-parent")) {
lcPCP.addClass('open'); lcPCP.children('ul').show(); lcPCP.children().children('i.fa').removeClass('fa-plus-square-o');
} else if (lcP.hasClass("current-cat")) {
lcPC.addClass('open'); lcPC.children('ul').show(); lcPC.children().children('i.fa').removeClass('fa-plus-square-o');
} else {
lcPF.addClass('open'); lcPF.children('ul').show(); lcPF.children().children('i.fa').removeClass('fa-plus-square-o');
}
$('.has-toggle span.toggle').on('click', function() {
$ts = $(this);
if ($ts.parent().hasClass("open")){
$ts.parent().removeClass('open'); $ts.parent().children('ul').slideUp(); $ts.children('i.fa').addClass('fa-plus-square-o');
} else {
$ts.parent().parent().find('ul.children').slideUp();
$ts.parent().parent().find('li.cat-parent').removeClass('open');
$ts.parent().parent().find('li.cat-parent').children().children('i.fa').addClass('fa-plus-square-o');
$ts.parent().addClass('open');
$ts.parent().children('ul').slideDown();
$ts.children('i.fa').removeClass('fa-plus-square-o');
}
});
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment