What’s new in FacetWP 3.8

FacetWP is a major rewrite that contains some potentially breaking changes, especially if you’re using any custom hooks that depend on jQuery. Please make sure to test 3.8 on a staging site.

Browser requirements

FacetWP’s front-end javascript code has been rewritten and modernized (using ES6 standards). This means that FacetWP no longer supports IE11 and below.

Removal of jQuery dependency

FacetWP 3.8 no longer requires jQuery. We’ve added a UI setting to let you continue loading jQuery if needed (for backwards compatibility).

This is a major change, so we wanted to provide a way to downgrade if needed. You can download the prior branch (3.7.4) within the facetwp.com account dashboard.

New JS helper library

There are still some jQuery methods that are better / less verbose than their (ES6) equivalents. For those cases, we built a small javascript utility library (called fUtil) to fill in the gaps. fUtil includes methods such as .each(), .find(), .on(), .off(), .trigger(), and .clone().

For .each(), jQuery uses (key, val), but fUtil and native JS both use (val, key). This ordering difference means that you may need to tweak any custom jQuery loops.

fUtil is less than 2KB minified, compared with jQuery + Migrate which adds up to ~35KB.

More JS rewrites

  • fSelect – we’ve rebuilt this library from scratch to be even faster and lighter.
  • fDate – introduced in 3.7.1, we’ve continued to refine and optimize the code.
  • fTip – we built this tooltip library to replace jquery-powertip, which relied on jQuery.
  • fComplete – this new autocomplete library replaces jquery-autocomplete and is blazingly fast.
  • nummy – we’ve updated our number formatting library to use modern ES6 javascript.

Other highlights

  • FacetWP now sends raw data via AJAX for greater efficiency (and less overhead)
  • Update checks are now made over HTTPS
  • We’ve added “Settings” data to Debug Mode for easier troubleshooting