=== FiboFilters ===
Contributors: damian-gora, matczar
Tags:
Requires at least: 6.4
Tested up to: 7.0
Requires PHP: 7.4
Stable tag: trunk
License: GPLv3
License URI: https://www.gnu.org/licenses/gpl-3.0.html

== Installation ==

1. Install the plugin from within the Dashboard or upload the directory `fibofilters` and all its contents to the `/wp-content/plugins/` directory.
2. Activate the plugin through the 'Plugins' menu in WordPress.

== Changelog ==

= 1.12.1, April 28, 2026 =
* FIXED: Delayed initialization of SEO rules rendering and prefetching until after configuration load to prevent early JavaScript race conditions.
* FIXED: Error when sorting products by name.
* FIXED: Resolved a PHP notice in the Avada integration.


= 1.12.0, April 27, 2026 =
* ADDED: **SEO Rules** — a new engine for creating SEO-optimized URLs based on active filters. Includes sitemap generation, crawl budget management, canonical URL handling, and content replacement. [See documentation](https://fibofilters.com/documentation/how-it-works/seo-rules/).
* ADDED: **WoodMart** — Masonry layout support.
* ADDED: **Avada** — support for fetching single products in the **Woo Product Grid** widget on custom pages.
* ADDED: New integration with the **JetWooBuilder** plugin.
* ADDED: New integration with the **Themify Builder** plugin.
* ADDED: New integration with the **Product Gallery Swiper** plugin.
* ADDED: **Brands filter** based on native WooCommerce taxonomy now supports **logo display**.
* ADDED: Support for the **Variations as Single Product for WooCommerce (Pro)** plugin.
* ADDED: Troubleshooting check for **duplicated ACF filter values**.
* FIXED: **WoodMart** — product gallery now works correctly.
* FIXED: **Bricks** theme — interactions now refresh correctly after filtering.
* FIXED: **Divi** theme — pagination issue when landing directly on a paginated page with active filters; also fixed filters in **Divi Theme Builder** templates.
* FIXED: **Neve** theme — invisible sorting select.
* FIXED: **Porto** theme — dark theme color variable.
* FIXED: **Hestia** theme — filter label alignment.
* FIXED: **Polylang** — missing product categories in the **Checkboxes** filter type.
* FIXED: **WPML** — language parameter duplication in URLs.
* FIXED: **TranslatePress** — spaces being removed from the show-more counter.
* FIXED: **Wishlist** buttons not working in the Advanced Products widget in **Themify Builder Pro**.
* FIXED: Duplicate product index entries caused by duplicated filter values.
* FIXED: Multilingual indexing issue when product variants have no parent products.
* FIXED: Incorrect translation of "from %s" in **French**.
* FIXED: Fatal error during plugin update.
* FIXED: **Mobile Color filter** — stays correct while scrolling; now shows a "Selected" label under the Color heading.
* FIXED: Filter checkbox and counter alignment when labels wrap to two lines.
* FIXED: Descriptor cache filesize warnings.
* FIXED: Front page shortcode filters now work correctly.
* FIXED: Missing visibility check when fetching single products.
* FIXED: Missing parameter sanitization in **REST API** endpoints.
* FIXED: Improper output escaping on the **debugger** page.
* FIXED: Unsafe data unserialization.
* FIXED: Invalid **CSS color** injection prevention.
* FIXED: `range-continuous` filter — undefined `'logic'` key warning.
* FIXED: **"Quick Edit"** for categories causing a request timeout.
* FIXED: **PHP 8.4** deprecation warnings.
* TWEAK: Refactored descriptors JSON URL handling for improved obfuscation and indexing prevention.
* UPDATED: Updating the `.pot` file.
* UPDATED: Freemius SDK.

= 1.11.0, December 15, 2025 =
* ADDED: **Custom sorting** by post meta values. [See documentation](https://fibofilters.com/documentation/how-it-works/product-sorting/#sorting-by-custom-fields).
* ADDED: Support for **multiple values** in the `Range` filter. [See documentation](https://fibofilters.com/documentation/filter-types/number-range/#products-with-multiple-numbers).
* ADDED: Ability to configure **slider step and precision** in the `Range` filter (via **filter hook**). [See documentation](https://fibofilters.com/documentation/filter-types/number-range/#custom-slider-steps).
* ADDED: **Elementor Loop Grid** support for sources other than the current query.
* ADDED: The `Search` filter can now use the **FiboSearch Pro** engine. [See documentation](https://fibofilters.com/documentation/filter-types/search/#adding-the-search-filter-type)
* ADDED: New `Hierarchical category links` **filter type**. [See documentation](https://fibofilters.com/documentation/filter-types/category-links-tree/).
* ADDED: New `classname` **shortcode attribute** to apply a custom CSS class to the filters container.
* ADDED: New `all_screens` **shortcode attribute** to always display filters.
* ADDED: New **CSS classes** for the horizontal filter layout.
* ADDED: Option to show **private products** to admins.
* ADDED: **Shopkeeper** theme integration (including follow-up fixes).
* ADDED: **Porto** theme integration.
* ADDED: New **Hestia** theme integration.
* ADDED: New integration with the **WPC Product Bundles** plugin (initial release + improvements).
* ADDED: New troubleshooting check for the `wc_product_attributes_lookup` table (with **clearer explanations** and minor fixes).
* ADDED: Descriptor fetch test now runs directly in the **browser** (improved reliability).
* ADDED: **Automatic disabling** of the source analyzer when it gets stuck.
* ADDED: Troubleshooting info for the **Sort Products** plugin.
* ADDED: Kickoff announcement for upcoming **Full Site Editing (FSE)** and **Interactivity API** integration.
* FIXED: **500 error** on **PHP 8+** in the Breakdance Header Builder.
* FIXED: **Critical issue** in The7 theme integration.
* FIXED: Improved detection of incorrect **base product IDs**.
* FIXED: **Pagination** issue in Avada theme integration.
* FIXED: Divi custom page issues: **pagination not working** and **404 on refresh** with active filters (Woo Products module) on non-WooCommerce pages.
* FIXED: Missing **pagination** after clearing active filters when only one results page is available.
* FIXED: Product variations disappearing after **sorting changes** when the "Variations as Single Product" plugin is active.
* FIXED: Incorrect **price sorting** when a product variation is out of stock.
* FIXED: Incorrect **popularity sorting** when products have more than **10,000 sales**.
* FIXED: Warning about incorrect use of the `fibofilters/custom_catalog_orderby` filter when it has not been used yet.
* FIXED: Troubleshooting test incorrectly marking `Range` filters as **invalid** before source analysis completes.
* FIXED: Category checkbox not consistently **checked** when viewing its category page.
* FIXED: **WPML** translation strings for filters not updating after saving settings.
* FIXED: Translations not applied when computing values for filters with `computed` sources.
* FIXED: Filter source loading error on the settings page caused by a debugging function.
* FIXED: **Filters Debugger** not displaying any content in some cases.
* FIXED: **PHP notice** in the debugger.
* FIXED: Attribute-based filters now use attribute **slugs** by default.
* FIXED: Too many **decimal places** in product price descriptors.
* FIXED: Accidental color selection on scroll in the mobile **Color** filter.
* FIXED: Category-link filter styles being overridden (increased CSS selector **specificity**).
* FIXED: Search filter UI layout shift caused by the **preloader**.
* FIXED: Incorrect display of Color filter values in the **XStore** theme.
* FIXED: Incompatibility with the "Show More Link" option in the **XStore** theme.
* FIXED: Filters unexpectedly displaying in the **Uncode** theme when their location is set to "Custom".
* FIXED: Double border in the **Storefront** theme search bar.
* FIXED: Missing `init()` invocation in plugin integrations that declare the `early_init` flag.
* FIXED: Performance issue during import with **WP All Import**.
* FIXED: Removed an unnecessary **banner** from the settings page.
* FIXED: Minor typos (including a documentation link).
* TWEAK: **Color filter** type enabled permanently.
* TWEAK: Renamed **filter hook** for excluding out-of-stock variations during filtering.
* TWEAK: Optimized **descriptor loading** after product index updates.
* TWEAK: Optimized filter rendering and refresh **performance** after value changes.
* TWEAK: Improved **language file** generation.
* TWEAK: Minor styling adjustments.
* TWEAK: Descriptor fetch test descriptions are now **clearer** and more user-friendly.
* TWEAK: Updated documentation links related to **automatic source analyzer disabling** when it gets stuck.
* UPDATED: **Freemius SDK**.
* UPDATED: **Greek language** files.
* UPDATED: Translations `.pot` file and `.po` files.

= 1.10.0, September 8, 2025 =
* ADDED: **Computed / custom data sources**. Per-product values computed via **callback**. See: [Custom filter sources](https://fibofilters.com/documentation/tips-tricks/custom-filter-sources/).
* ADDED: New value list mode with **alphabetical grouping** + **search bar** (without “Show more”). See: [Organizing filter values](https://fibofilters.com/documentation/how-it-works/organizing-filter-values/).
* ADDED: **Avada** theme — full support for **Post Cards** on the shop page and on custom pages, including settings (e.g., “Posts per page”, pagination type). See: [Avada theme → Post Cards](https://fibofilters.com/documentation/theme-integrations/avada-theme/).
* ADDED: **Uncode** theme — support for the **WPBakery Posts** element (horizontal and mobile filters, pagination). See: [Uncode theme](https://fibofilters.com/documentation/theme-integrations/uncode-theme/).
* ADDED: Open the **off-canvas / mobile overlay** with filters via a **custom action** or by clicking an element with a dedicated **attribute** (e.g., your own button). See: [Mobile filters → Opening with a custom button](https://fibofilters.com/documentation/how-it-works/mobile-filters/#opening-the-filter-mobile-overlay-with-a-custom-button).
* ADDED: **Number Range** with custom **value ranges**. See: [Number Range](https://fibofilters.com/documentation/filter-types/number-range/#custom-ranges).
* ADDED: **Sorting** — custom sorting **by price** (products without price go to the end) and **by review count**. See: [Product sorting](https://fibofilters.com/documentation/how-it-works/product-sorting/).
* ADDED: **Default exclusion** of **out-of-stock** variations + improved display when **all variations** are out of stock (variable products). See: [Variable products](https://fibofilters.com/documentation/how-it-works/variable-products/).
* ADDED: Compatibility with **variation selection forms** on product archive pages.
* ADDED: **Troubleshooting** — new test for checking **descriptors fetch**; plus a test that detects when a required theme integration isn’t enabled.
* ADDED: **Automatic loading** of the next product page when using the **“Pagination”** loading method.
* ADDED: **Per-filter collapsing** settings. See [Customizing collapsing for specific filters](https://fibofilters.com/documentation/tips-tricks/collapsing-filters/#customizing-collapsing-for-specific-filters).
* ADDED: Option to **display an image** next to the filter value label (before/after). See [Adding images to filter values](https://fibofilters.com/documentation/tips-tricks/adding-images-to-filter-values/).
* ADDED: Extra **CSS classes** for “Show more products” / “Show previous products” buttons.
* ADDED: Compatibility with **Relevanssi**.
* ADDED: Integration with the **Product Variation Swatches for WooCommerce** plugin.
* ADDED: **Skeleton** (loading placeholders) while filters are loading (UX).
* ADDED: `.htaccess` in uploads to block indexing.
* ADDED: **WP-CLI command** to update the plugin database.
* ADDED: **WPML** — support for **fallback** when a product translation is missing. See: [Multilingual plugins](https://fibofilters.com/documentation/plugin-integrations/multilingual-plugins/).
* ADDED: **Russian translation**.
* FIXED: **WoodMart** theme — no results when searching **by SKU**.
* FIXED: **Search filter** — missing results + **SQL** error after refreshing a page with an active Search filter.
* FIXED: **ACF** — filters were displaying **raw values instead of labels**; also fixed an indexing error when an ACF field had only a **key** (no value).
* FIXED: Error loading the **settings page** (Filter Builder) — including edge cases with source analysis stalling.
* FIXED: **Color filter** — colors not displaying; also fixed **double-tap on iOS**.
* FIXED: **Sort by price** for products **without price** (moved to the end).
* FIXED: **Total result count** replacement to handle **non-breaking spaces** and avoid **partial matches**.
* FIXED: **LazyLoad** conflict with the **Perfmatters** plugin.
* FIXED: **LiteSpeed Cache** — infinite loop of REST API requests on the settings page (caching of REST endpoints).
* FIXED: **Uncode** theme — missing horizontal/mobile filters with **WPBakery Posts**; fixed a **missing function** error and vertically aligned pagination arrows.
* FIXED: Removed unnecessary banners (MUI) and an unnecessary admin warning about filter issues on the search page when no results are found.
* FIXED: Added to **Troubleshooting** the list of incompatible plugins: **B2BKing**, **B2B by Addify**, and **WP Engine AI Toolkit**.
* FIXED: **Botiga** theme — sidebar auto-closing when clicking a filter.
* FIXED: **Astra** theme — conflict with **infinite scroll** when filters are visible.
* FIXED: **Flatsome** theme — “sticky sidebar” not working.
* FIXED: **Avada** theme — unwanted product loading in **Woo Product Grid** with “Infinite Scrolling”; also fixed **“Posts per page”** in **Post Cards**.
* FIXED: **XStore** theme — forces `global_image_lazy` when product thumbnails don’t load correctly. See: [XStore theme](https://fibofilters.com/documentation/theme-integrations/xstore-theme/).
* FIXED: Prevented unwanted removal of **URL parameters** unrelated to product filtering.
* FIXED: Duplicated terms in `FiboFilters\Indexer\Filters\Document::get_ancestor_values()`.
* FIXED: **Divi** theme — resolving shop page context on a custom Divi page when the queried object is missing + `:root` selector for input styles.
* FIXED: **Kadence** + **Kadence Woo Extras** — variation swatches now work..
* FIXED: **WPML/ACFML** — missing translation for **true/false** field labels; prevented unwanted **language switch during indexing**.
* FIXED: **“jQuery is not defined”** in integration snippets (two occurrences).
* FIXED: **Source dropdown** shows the selected value on the debug page.
* FIXED: Cache of sources flushed after adding a new source.
* FIXED: Prevented showing filters when the shop page displays categories only.
* TWEAK: Hid the **sorting values** option for the **On Sale** filter.
* TWEAK: Updated **`nofibofilters`** parameters (diagnostics). See: [Debugging → nofibofilters](https://fibofilters.com/documentation/troubleshooting/debugging/).
* REFACTOR: **Storage architecture** — filters and logs moved to a **separate table** (filters backups created before migration; **temporary copy** in `wp_options`).
* UPDATED: Translations `.pot` file and `.po` files.
* UPDATED: **Freemius SDK**.

= 1.9.0, May 13, 2025 =
* ADDED: [Adjusted images and permalinks of variable products](https://fibofilters.com/documentation/how-it-works/variable-products/#adjusting-variable-product-images-and-links-by-selected-attributes) to reflect the current filter state
* ADDED: Integration with [**Neve** theme](https://fibofilters.com/documentation/theme-integrations/neve-theme/)
* ADDED: Integration with [**Claue** theme](https://fibofilters.com/documentation/theme-integrations/claue-theme/)
* ADDED: Integration with **Imagify** plugin
* ADDED: Support for **The7** theme’s [**Elementor Products** widget](https://fibofilters.com/documentation/theme-integrations/the7-theme/#integrations-with-the7-elementor-products-widget)
* ADDED: Support for “no results” template in **Bricks** builder
* ADDED: Integration with **Woo Product Grid** widget from **Essential Addons for Elementor**
* ADDED: **Avada** theme integration — support for **Woo Product Grid** element on a custom page
* ADDED: Shortcode for custom pagination
* ADDED: [Uninstall functionality](https://fibofilters.com/documentation/developers/uninstall/) to clean up the database and logs on plugin removal
* ADDED: Support for **Rey** theme pagination type and fixed placeholder display
* ADDED: Troubleshooting test for detecting base product IDs inconsistent with the main query
* ADDED: Index build stuck detection mechanism
* FIXED: Products not loading on a custom page when the shop homepage has no products
* FIXED: Selected hierarchical checkboxes collapse after page reload
* FIXED: Ignoring `Products per page` setting on a custom page in **Woo Product Grid** from **Essential Addons for Elementor**
* FIXED: Product loading error in specific cases when the **WPML** plugin is active
* FIXED: Integration with **The7** theme not detected when using a child theme
* FIXED: **Avada** theme integration — proper pagination args: `end_size` and `mid_size`
* FIXED: Reset `<input>` `margin` to `0` to prevent unwanted spacing from theme styles
* FIXED: Filter button SVG icon style issue
* FIXED: Incorrect quantity field update after product search in **Bricks** theme
* FIXED: Missing adjustment of variable product permalink in some cases
* FIXED: Page number in URL not updating while scrolling the product list in some cases
* FIXED: 404 error after using the **Elementor Product** widget and refreshing the page with active filters
* FIXED: JavaScript deprecation warnings on the settings page
* FIXED: **In-stock products first** — [possibility to set priorities](https://fibofilters.com/documentation/tips-tricks/changing-the-order-of-products-in-woocommerce/#customize-stock-status-priorities) for `stock_status`, e.g. “in stock” first, then “on backorder”, then “out of stock”. Support for custom statuses
* FIXED: Incorrect counters in **Category links** filter type when displaying adjacent categories
* FIXED: Missing parameters in **Category links** filter type
* FIXED: Incorrect filter value labels when the source is an `ACF Number` field
* FIXED: **Partdo** theme integration — the breakpoint was changed to `1023px`
* FIXED: Integration with **Neve** theme — main breakpoint adjustment
* FIXED: Integration with **Neve** theme — removal of unnecessary infinite scroll trigger  
* TWEAK: More accurate detection of the product loop selector in the **Divi** theme integration
* TWEAK: Filter value limiting mechanism now skips product categories and attributes
* TWEAK: Hiding unwanted banner on the settings page
* TWEAK: PHP Warning: *Undefined array key* `0` in `/Config/Troubleshooting.php` on line `409`
* TWEAK: Disable canonical link generation by **FiboFilters** when **Yoast SEO** and **Rank Math SEO** is active
* TWEAK: Allowed fetching single products via `GET` method
* TWEAK: Unified tooltips in the **Color** filter
* UPDATED: Translations `.pot` file and `.po` files
* UPDATED: Freemius SDK

= 1.8.0, March 24, 2025 =
* ADDED: New [“Search” filter type](https://fibofilters.com/documentation/filter-types/search/)
* ADDED: Ability to [sort products by name](https://fibofilters.com/documentation/how-it-works/product-sorting/#customizing-sorting-options) (A-Z and Z-A)
* ADDED: Integration with the **Aelia Currency Switcher for WooCommerce** plugin
* ADDED: New “Featured” source type
* ADDED: **[Puca](https://fibofilters.com/documentation/theme-integrations/puca-theme/)** theme Integration
* ADDED: **[Virtue](https://fibofilters.com/documentation/theme-integrations/virtue-theme/)** theme integration
* ADDED: **[The7](https://fibofilters.com/documentation/theme-integrations/the7-theme/)** theme integration
* ADDED: **[Atomion](https://fibofilters.com/documentation/theme-integrations/atomion-theme/)** theme integration
* ADDED: **[Savoy](https://fibofilters.com/documentation/theme-integrations/savoy-theme/)** theme integration
* ADDED: **[Partdo](https://fibofilters.com/documentation/theme-integrations/partdo-theme/)** theme integration
* ADDED: **[Enfold](https://fibofilters.com/documentation/theme-integrations/enfold-theme/)** theme integration
* ADDED: Added [placeholders for custom HTML code]()https://fibofilters.com/documentation/tips-tricks/displaying-extra-html-in-filters/ next to filters
* ADDED: Support for single product variations
* ADDED: Troubleshooting — Detection that the theme uses FSE (Full Site Editing), which [is not yet supported in FiboFilters](https://fibofilters.com/documentation/tips-tricks/fse-full-site-editing/)
* ADDED: Troubleshooting — detecting duplicate [canonical links](https://fibofilters.com/documentation/how-it-works/seo/#avoiding-duplicated-content)
* ADDED: Ability to override extended number values
* ADDED: Tooltips for filter headers
* ADDED: Ability to [override translations](https://fibofilters.com/documentation/tips-tricks/changing-front-end-labels/#overriding-default-labels) in a clearer and more user-friendly way
* ADDED: Shortcode for custom ordering
* ADDED: Range filter supports numeric values with prefixes or suffixes
* ADDED: Allow refetching descriptors after index update
* ADDED: Range filter — better descriptions
* ADDED: Support for the **Archive Products widget for Elementor** with the XStore theme
* ADDED: Hook to fix CSS classes of products in the loop
* ADDED: Tooltips in plugin settings
* ADDED: Automatically adding a class to the product placeholder
* ADDED: Possibility to override “show_all_grouping_by_first_char” option [per filter](https://fibofilters.com/documentation/how-it-works/organizing-filter-values/#overriding-the-search-configuration-for-specific-filters)
* ADDED: Hungarian translation
* ADDED: Ukrainian translation
* FIXED: Unable to change phrase translations using a filter
* FIXED: False-positive test for duplicate canonical link despite the filter disabling canonical link addition
* FIXED: Compatibility with version 4.x of the YITH WooCommerce Wishlist plugin
* FIXED: Sorting stopped working in some cases
* FIXED: Support for “On backorder” stock status during product sorting ([in-stock first](https://fibofilters.com/documentation/how-it-works/product-sorting/)).
* FIXED: Including multiple stock statuses in the [feature that ensures in-stock products are displayed first](https://fibofilters.com/documentation/how-it-works/product-sorting/)
* FIXED: Error 404 during server-side filtering on custom page displaying products using shortcode
* FIXED: [Filter color](https://fibofilters.com/documentation/filter-types/color/) — UI improvements
* FIXED: Incorrect value display for ACF source with multiple values
* FIXED: Duplicate query when loading a page with filters
* FIXED: Unnecessary trailing slash added when not present in the permalink structure
* FIXED: Horizontal and mobile filters did not open when there was no tooltip
* FIXED: Missing custom “Pre-order” Stock status value
* FIXED: Duplicated “orderby” parameter in the URL
* FIXED: Results count in Lithuanian
* FIXED: **WPML** plugin integration — incorrect sorting order for average rating
* FIXED: **WPML** plugin integration — incorrect sorting order for the default language
* FIXED: Source analyzer error when the numeric value was `0`
* FIXED: Troubleshooting — removed unnecessary deprecated filter warnings when WPML or Polylang is active
* FIXED: The display of the “See previous products” button has been improved using the `add_action` hook
* FIXED: Failed to load front-end settings due to invalid JSON in some cases
* FIXED: Index is not building due to Basic Auth
* FIXED: An unnecessarily visible price filter when there are no search results
* FIXED: Error “414 (URI Too Long)” when fetching single products
* TWEAK: Excluding sources from calculations that are only used for sorting
* TWEAK: Ability to add exceptions when prioritizing featured and in-stock products during sorting
* TWEAK: Skipped loading values for the “Search” filter type as they are unnecessary
* TWEAK: Integration with the “OceanWP” theme – prevent the use of the “search” slug
* TWEAK: Optimized database queries
* TWEAK: Removed unused option for Range filter type
* REFACTOR: Storing descriptors in the database in JSON format
* UPDATED: Translations `.pot` file and `.po` files

= 1.7.0, January 27, 2025 =
* ADDED: Introduced a new “**Color**” filter type
* ADDED: Added the option to change the `<h3>` filter headline to a different HTML tag. See how to do it [in the documentation](https://fibofilters.com/documentation/how-it-works/seo/#changing-the-html-tag-for-the-filter-header)
* ADDED: Added the option to set an offset when scrolling the view after changing filter values or pagination (enabled via a PHP snippet)
* ADDED: Displaying filter errors in the **Filters Debugger**
* ADDED: Added the option to display featured products before others (enabled via a PHP snippet)
* ADDED: Added the option to overwrite some config values per filter (via a PHP snippet)
* ADDED: Added the option for the select filter type to search by part of a phrase
* ADDED: Added new hooks for the filtering and displaying process
* ADDED: Added the option to sort products by the last modified date (via a PHP snippet)
* ADDED: Added the option to use filter slugs in the`fibofilters/config/overrides` filter
* ADDED: Added the option to change the number format and end value labels for each range filter (via a PHP snippet)
* ADDED: Added the option to expand hierarchical checkboxes to a specified level on page load (via a PHP snippet)
* FIXED: Resolved a PHP warning: `Undefined array key "show_filters"`
* FIXED: Resolved an issue where some counter formats were not overridden
* FIXED: Resolved the issue where the page reloads after changing product sorting
* FIXED: Enhanced integration with the **Divi** theme’s **Woo Products** module
* FIXED: **Breakdance** theme integration – improved integration
* FIXED: **Kadence** theme integration – resolved an issue where badges were not visible
* FIXED: **Perfmatters** plugin integration – improved compatibility
* FIXED: Corrected the toggle style on the settings page
* FIXED: Frontend sorting now supports displaying featured and in-stock products first
* FIXED: Enhanced number formatting for improved clarity and consistency
* FIXED: Resolved a PHP warning caused by incorrect widget iteration
* FIXED: Resolved an issue where filters did not work with the `[products fibofilters=1]` shortcode in the content of the page set as the front page
* FIXED: Removed prohibited ARIA attributes from elements
* FIXED: Resolved an issue where the number of products was displayed on buttons even when the “**Show counters**” option was disabled
* TWEAK: Prevented caching of the JSON file containing descriptors after index updates
* TWEAK: Improved custom ordering functionality for better backend filtering
* REFACTOR: Customized the initial product ordering for base products and main queries
* UPDATED: Translations `.pot` file
* UPDATED: Freemius SDK

= 1.6.1, December 17, 2024 =
* FIXED: Did not fetch the currency from the settings, causing the default currency USD to always display

= 1.6.0, December 16, 2024 =
* ADDED: Custom [**product sorting**](https://fibofilters.com/documentation/how-it-works/product-sorting/) within FiboFilters
* ADDED: [**Bricks theme** integration](https://fibofilters.com/documentation/theme-integrations/bricks-builder-theme/)
* ADDED: [**Armania theme** integration](https://fibofilters.com/documentation/theme-integrations/armania-theme/)
* ADDED: [**Grouping and searching**](https://fibofilters.com/documentation/how-it-works/organizing-filter-values/) in long lists of filter values
* ADDED: [Permission for the "**Shop Manager**" role](https://fibofilters.com/documentation/tips-tricks/granting-access-for-the-shop-manager-role/) to manage plugin settings (enabled via a filter)
* ADDED: Option to disable filters for debugging [via a hook](https://fibofilters.com/documentation/troubleshooting/debugging/)
* ADDED: Ability to activate the filter debugger from [the browser console](https://fibofilters.com/documentation/troubleshooting/debugging/#turn-on-the-filters-debugger)
* ADDED: [**Limit the total number of filter values**](https://fibofilters.com/documentation/how-it-works/organizing-filter-values/#limiting-the-total-number-of-filter-values)
* ADDED: Improved [**filter collapsing**](https://fibofilters.com/documentation/tips-tricks/collapsing-filters/) in mobile and off-canvas views
* ADDED: **WP Rocket plugin** integration – improved exclusion of JS scripts from delay and CSS styles from removal
* ADDED: **WP Rocket plugin** integration – improved compatibility with Lazy Render Content functionality
* ADDED: **WP Rocket plugin** integration – better support for the “Delay JavaScript execution” functionality
* ADDED: Default theme integration enabled during onboarding
* ADDED: Option to disable rebuilding the index after settings are updated
* FIXED: **Woodmart theme** integration – disabled conflicting Woodmart options
* FIXED: **Woodmart theme** integration – conflict with the “Woodmart Quantity input” in “Theme settings > Products archive > Products styles”
* FIXED: **Shoptimizer theme** integration – filtering did not work when products were added to the Mega Menu
* FIXED: **Blocksy theme** integration – fixed wishlist, quick view, and comparison list functionality for products
* FIXED: **WPML plugin** integration – index build failure due to a fatal error in some cases
* FIXED: Notice about loading translations too early when **LocoTranslate** is active
* FIXED: PHP notice: `Undefined variable $orderedby in (...)` when loading a WooCommerce template
* FIXED: Pagination issue for URLs missing a trailing slash
* FIXED: JS error and unnecessary wrapping of filter counters
* FIXED: Multilingual issue – removing filters from the URL after a page reload
* FIXED: The list of values for the "Select" filter type was not visible in the mobile view
* FIXED: Filtering did not work when the filter value contained encoded characters
* FIXED: Fatal error when the URL contained query parameters with square brackets
* FIXED: Forcing `direct` indexing mode did not account for the number of product variations
* FIXED: Incorrect count of viewed products when previous product pages remain hidden
* FIXED: Hidden default categories above products after applying any filter
* FIXED: Conflicts with cache plugins
* FIXED: JavaScript error while fetching single products
* FIXED: Error building the DI container cache
* TWEAK: Improved determination of the [fetch URL for single products](https://fibofilters.com/documentation/how-it-works/product-grid-rendering/#endpoint-url-for-fetching-missing-products)
* TWEAK: Hidden the FiboFilters widget from the “Legacy Widget block”
* TWEAK: Improved hierarchical checkboxes
* TWEAK: Updated labels in brand integrations to reflect the introduction of brand support in WooCommerce 9.4
* TWEAK: Cached database query results with a list of product IDs to filter
* UPDATED: Translations `.pot` file
* UPDATED: Freemius SDK

= 1.5.2, October 21, 2024 =
* FIXED: Slow SQL query has been optimized. Very large stores may experience increased CPU load after removing products
* FIXED: PHP Warnings – uninitialized string offset `0` and uninitialized string offset `-1`

= 1.5.1, October 16, 2024 =
* FIXED: PHP fatal error on the search page in some rare cases

= 1.5.0, October 14, 2024 =
* ADDED: [SEO-friendly pagination](https://fibofilters.com/documentation/how-it-works/seo/)
* ADDED: A PHP filter to [manage currency](https://fibofilters.com/documentation/filter-types/number-range/)
* ADDED: Integration with the [**Bethemee**](https://fibofilters.com/documentation/theme-integrations/betheme-theme/) theme 
* ADDED: Integration with the [**Basel**](https://fibofilters.com/documentation/theme-integrations/basel-theme/) theme
* ADDED: Filter to change [expiration time of JSON](https://fibofilters.com/documentation/how-it-works/in-browser-filtering/) files with descriptors
* ADDED: Fetching descriptors via REST API when fetching them as a JSON file fails
* ADDED: [Filters Debugger](https://fibofilters.com/documentation/troubleshooting/debugging/#filters-frond-end-debugger)
* ADDED: Removing non-existent or invalid filter values from URLs when the page loads
* ADDED: Possibility to select all sources in onboarding
* ADDED: Warnings in the Troubleshooting tab can be dismissed
* ADDED: Server-side pre-filtering when URL contains filters
* ADDED: New troubleshooting test – checking for inconsistent tax settings
* ADDED: Danish translation
* FIXED: JavaScript warnings and errors occurred in some cases on the settings page
* FIXED: **Botiga theme** integration – a value of the main breakpoint was fixed
* FIXED: **Flatsome theme** integration – disable the experimental Flatsome feature “**AJAX loading**” that breaks FiboFilters in some cases
* FIXED: **Basel theme** integration –  fixed product ordering and a wrong number of loading products
* FIXED: **XStore theme** integration – product photo slider was fixed
* FIXED: **Woodmart theme** integration – disable the “**AJAX shop**” feature because of conflicts. FiboFilters does AJAX shop, so this Woodmart feature is useless
* FIXED: **Woodmart theme** integration – broken product grid after saving the Woodmart settings
* FIXED: **Woodmart theme** integration – support for non-WooCommerce pages
* FIXED: **Astra theme** integration – support for a quick view and pagination features
* FIXED: **JVM WooCommerce Wishlist plugin** integration – necessary JS snippet was loaded before jQuery in some cases. The `cix-wishlist` dependency on the snippet was added
* FIXED: **PW WooCommerce Gift Cards plugin** integration – prevent showing duplicated gift cards on the product grid
* FIXED: **WPML plugin** integration – error building index when there is a product with hidden language
* FIXED: **Elementor plugin** integration – support for WooCommerce sorting in **Elementor Loop Grid** widget displaying products
* FIXED: **SEO** - the counter from the anchor of the category links was removed. Web crawlers will read category link anchors like a plain name instead of a category name and then a counter value
* FIXED: “Duplicate entry…” – error during index build when the build gets stuck and the job is resumed by cron
* FIXED: Support more shortcode attributes during filtering on a custom page for the shortcode `[products]`
* FIXED: Incorrect selecting filter values when the values include duplicate slugs
* FIXED: Filter type buttons – reset margin that might be overridden by theme styles
* FIXED: Fatal error related to an `html_entity_decode` function
* FIXED: Duplicated or missing products on the product grid in some cases when `post_parent` values are mish-mashed in a user database
* FIXED: PHP warnings when one of the filters is empty
* FIXED: Invisible filters in horizontal layout when collapsed
* FIXED: MacOS optimization – better handling arrays in `calcCountersFromDescriptors()`
* FIXED: Display the string with the dynamic length after rebuilding the index as a part of the `fiboFiltersData` object. It might prevent some cache systems that check only HTML length
* FIXED: Astra theme integration – fatal error related to the class `Astra_Ext_Extension`
* FIXED: The source analyzer doesn't recognize data types correctly in some cases
* FIXED: Force HTTPS in the JSON URL if SSL is enabled
* FIXED: Duplicated results on the search results page
* FIXED: Remove a price filter after the page loads when there are no results
* FIXED: Unwanted focus event after removing an applied filter element
* TWEAK: Removing an unused descriptor cache code
* TWEAK: Don't rebuild the index after changing some filter options or filter order in the filter creator
* TWEAK: Delay in scrolling to the top when changing filter values
* REFACTOR: Creating filter values slug based on attributes slug instead of creating it dynamically based on names
* UPDATED: Frontend phrases supplementation for languages CZ, DK, DE, EL, ES, FR, IT, LT, NO, NL, PL, PT, SE, TR translations
* UPDATED: Freemius SDK

= 1.4.0, July 30, 2024 =
* ADDED: Integration with the “**Advanced Custom Fields (ACF)**” plugin
* ADDED: Integration with the “**Salient**” theme
* ADDED: Integration with the “**"Botiga**” theme
* ADDED: Integration with the “**Woo Composite Products**” plugin
* ADDED: Integration with the “**JVM WooCommerce Wishlist**” plugin
* ADDED: The “**Late init**” mode. It's useful when a `WP Query` is fired late eg. inside WordPress page templates
* ADDED: Allow to set the Content-aware filter ratio per filter
* ADDED: Support for inconsistent tax settings
* ADDED: The new filter type – “**Buttons**”
* ADDED: Filter values can be sorted numerically
* ADDED: Possibility to add brackets to filter counters
* ADDED: Possibility to set the order of filter values with the **Tag** source by term order (when Tags are sortable)
* ADDED: A tool for debugging filter source
* ADDED: Norwegian translation
* FIXED: Incorrect translation of values in the “**Stock Status**” and “**In Sale**” filters for **WPML** and **Polylang** plugins
* FIXED: PHP warning when `nofibofilters=2` mode is active
* FIXED: Missing translation for the “**Select…**” placeholder
* FIXED: Missed the “**When to show**” option in the range type filter
* FIXED: A useless scrollbar in the “**Filter Creator**”
* FIXED: Slow price slider when there was large price range
* UPDATED: Translations `.pot` file
* UPDATED: Turkish translations

= 1.3.1, July 09, 2024 =
* ADDED: Preloader for product placeholders
* ADDED: Range filter supports numeric values
* FIXED: **OceanWP theme** – broken pages by incorrect product placeholder overriding
* FIXED: The product results counter was broken when there were different characters than the **Hyphen**, **En dash**, **Em dash**. These characters are normalized now. 

= 1.3.0, July 01, 2024 =
* ADDED: **Elementor integration** – support for the [**Loop Grid widget**](https://fibofilters.com/documentation/plugin-integrations/elementor/#support-for-the-loop-grid-widget)
* ADDED: **Elementor integration** – support for the [“**Products**” widget](https://fibofilters.com/documentation/plugin-integrations/elementor/#support-for-the-products-widget) displayed on a custom Elementor page
* ADDED: Integration with the “**Hide Categories and Products for Woocommerce**” plugin
* ADDED: Integration with the [“**XStore**” theme](https://fibofilters.com/documentation/theme-integrations/xstore-theme/)
* ADDED: Integration with the “**Polylang multilingual**” plugin
* ADDED: Integration with the “**Kadence Shop Kit products brands**” module
* ADDED: **Divi theme** integration – allows displacing filters that correspond with the [“Woo Products” module](https://fibofilters.com/documentation/theme-integrations/divi-theme/#support-for-the-woo-products-module)
* ADDED: Caching the descriptors to static [JSON files](https://fibofilters.com/documentation/how-it-works/in-browser-filtering/#loading-descriptors-on-customers-first-visit)
* ADDED: Ability to display filters in [a custom location](https://fibofilters.com/documentation/get-started/filter-location-custom-location/)
* ADDED: Ability to set the number of filter buttons in [horizontal](https://fibofilters.com/documentation/how-it-works/horizontal-filters/#change-the-number-of-buttons) and [mobile](https://fibofilters.com/documentation/how-it-works/mobile-filters/#change-the-number-of-buttons) layouts
* ADDED: Ability to [filtering products on **non-WooCommerce pages**](https://fibofilters.com/documentation/get-started/filter-location-custom-location/#displaying-filter-on-non-woocommerce-pages)
* ADDED: New pagination type – **infinity scroll**
* ADDED: Integrate **Elementor** and **Avada** builders with the new feature of **Infinity Scroll**
* ADDED: Ability to [exclude and include filter values](https://fibofilters.com/documentation/tips-tricks/hiding-some-filter-values/)
* ADDED: Compatibility with the **Kinsta Server Caching** feature
* ADDED: Easier browsing of product categories displayed as a checkbox tree
* ADDED: Information about the number of products above [the “**Show more products**” button](https://fibofilters.com/documentation/how-it-works/pagination/#the-show-more-products-button)
* ADDED: Troubleshooting – checking whether a JSON file compression is enabled
* ADDED: Possibility to remove the “**Show more products**” button counter by filter
* FIXED: Elementor overwrites the colors set in theme integrations
* FIXED: **WPML integration** – possibility to translate phrases from the front using the **WPML String Translation** module
* FIXED: **GeneratePress Premium theme** – support for products per page
* FIXED: **Woodmart theme** – product placeholder and products per page value are now integrated.
* FIXED: **Divi theme** – a PHP fatal error has occurred in some cases
* FIXED: JavaScript error if the result count selector is empty
* FIXED: The index cache wasn't reloaded after the index build
* FIXED: Google PageSpeed Insights – accessibility errors solved
* FIXED: Google PageSpeed Insights – pagination links are crawlable now
* FIXED: Category filter links weren't crawlable in horizontal and mobile filter layouts
* FIXED: Speed optimization – unnecessary requests when loading filters were removed
* FIXED: A JavaScript error in the **Filter Builder** view on the Settings page
* FIXED: An incorrect products loading when the shop URL wasn't set
* FIXED: The filters shortcode – show filters on all screens by default when the filter location is set to “[Custom location](https://fibofilters.com/documentation/get-started/filter-location-custom-location/)”
* FIXED: A fatal error while displaying filters when category term didn't exist
* FIXED: Products weren't displayed when their visibility was set to “**Search results only**” in the product edit view
* FIXED: Greek translation – wrong placeholder `%S` instead of lowercase `%s`
* FIXED: “Function `\FiboFilters\Filtering\Front::get_config was called incorrectly`” notice when editing a page with a FiboFilters block
* FIXED: Improvement of image placeholders in “**Astra**”, “**Electro**” and “**OceanWP**” themes
* FIXED: An error in hierarchical checkboxes in a case when a “**Show empty filter values**” option was disabled 
* FIXED: Filters didn't work correctly when JSON files with descriptors were cached by CDN cache
* FIXED: Faster loading of the settings page
* FIXED: Preventing applying the opacity effect multiple times in hierarchical checkboxes
* TWEAK: Loading the filters JavaScript file in the page head instead of at the end of the page load
* TWEAK: Queuing JavaScript scripts as a new handler within theme integration
* TWEAK: Unnecessary use of `wpdb::prepare()` when retrieving the descriptors from the database
* REFACTOR: Unused code related to filtering on a server-side was removed
* REFACTOR: Improved generation of dynamic price ranges in the Price filter type
* UPDATED: Translations including `.pot`, `.po` and `.mo` files
* UPDATED: Freemius SDK

= 1.2.0, April 18, 2024 =
* ADDED: Scheduling indexing. It allows to rebuild the index automatically on a schedule.
* ADDED: Added `WP-CLI` commands related to the index.
* ADDED: Possibility to disable filters for debugging by adding the `?nofibofilters=1` parameter to the URL.
* ADDED: Integration with the “WP Rocket” plugin.
* ADDED: Integration with the “FlyingPress” plugin.
* ADDED: Integration with the “Freestyle” theme.
* ADDED: Integration with the “Breakdance builder” plugin.
* ADDED: Possibility to sort products by stock status first, then by other values. It could be activated only by the WordPress filter hook.
* ADDED: Troubleshooting – a new test for ambiguous and incorrectly configured stock status in variable products.
* ADDED: Turkish translation.
* ADDED: Lithuanian translation.
* FIXED: Variable products could disappear from the products catalog when the `wc_product_attribute_lookup` table is corrupted or incomplete.
* FIXED: Support for the “Post Card” feature in the Avada theme integration.
* FIXED: Index building fails because of a “Duplicate entry...” error.
* FIXED: Wrong pagination selector in the Avada theme integration.
* FIXED: Incorrect price ranges that were generated in some price combinations.
* FIXED: “Woodmart” theme integration – products grid crashes after updating the “Woodmart” theme to `v7.4.3`.
* FIXED: The “Scroll to the top after selecting a filter value” functionality does not work.
* FIXED: JS error when the first element of ranges is empty and there isn't a possibility to get the `rounded_max` variable.
* FIXED: Language files for plugin settings are not loaded.
* FIXED: Pagination – returning to page 1 in the browser history doesn't change the pagination state.
* FIXED: Products can't be fetched when the “Shop” page is empty in the WooCommerce settings.
* FIXED: Untranslated “Clear” text.
* FIXED: An SQL error on the frontend when the index is not ready.
* FIXED: Incorrect filter translations when the administrator's language differs from the website's language.
* FIXED: Warning about using `ReactDOM.render` on the settings page.
* TWEAK: Hide the “Custom” filter location in the onboarding process.
* TWEAK: Remove unused code.
* TWEAK: Exposing some internal data that is helpful in debugging.
* REFACTOR: Cleanup in the `Request` class.
* REFACTOR: Rename “Products loading” to “Pagination types” in the plugin settings.
* UPDATED: Freemius SDK.

= 1.1.0, March 21, 2024 =
* ADDED: Compatibility with the “Variation Swatches for WooCommerce – Pro” plugin.
* ADDED: The CSS class was added to the counter for the “more/less” links to allow users to hide it via CSS.
* ADDED: Swedish translation.
* ADDED: Save indexer fail logs.
* ADDED: Allowing to disable source value types analyzer.
* ADDED: Add a filter to change the content-aware filter ratio.
* ADDED: Integration with the YITH WooCommerce Wishlist plugin.
* ADDED: Integration with Pixel Manager for WooCommerce (Premium).
* ADDED: Possibility to hide filters by context (only by PHP snippets).
* FIXED: Products disappear from filter results after editing them.
* FIXED: Indexer error when filter value label is too long.
* FIXED: The indexer error when the filter value label is too long.
* FIXED: The plugin settings cannot be saved when the ESI in LiteSpeed Cache is enabled.
* FIXED: The index cannot be built when the ESI in LiteSpeed Cache is enabled.
* FIXED: Typos in translations.
* FIXED: Issues related to JS onpopstate event.
* FIXED: GeneratePress theme – the FiboFilters plugin doesn't recognize GeneratePress settings because of the wrong order of WP hooks.
* FIXED: Divi theme – memory limit exceeded error.
* FIXED: Astra theme – hidden products when the “Reveal Effect” is enabled.
* FIXED: An JS error related to `infinity` and `-infinity` types returned by `Math.min`.
* FIXED: Invalid price ranges.
* FIXED: Prevent empty `url_label`.
* FIXED: Add a shop page as the base URL to fetch products to fix some integrations with themes.
* FIXED: Page shifts after loading horizontal filters.
* FIXED: Incorrect “Woocommerce Result Count” values in some cases.
* TWEAK: Triggering theme actions also after overwriting product placeholders.
* TWEAK: Index building time optimization.
* TWEAK: Restoring the default `OR` logic for the “Categories” filter when the "Checkboxes” type is selected.
* UPDATED: Freemius SDK.

= 1.0.0, March 04, 2024 =
* ADDED: First public release
