This file holds the archive of changelog entries

= 4.2.4 =

* Features:
	* Better Search form: The “any” post type option label can now be customised when the post type dropdown is enabled.
	* Media Handler now detects featured images provided by the Featured Image from URL (FIFU) plugin.

* Fixed:
	* Fixed an issue where selecting “any” post type would search through all post types instead of respecting the configured post types from settings.
	* [Pro] Custom table searches now include post slug matching when “Search post slug” is enabled.
    * [Pro] Fixed SQL syntax error in multisite search queries when custom tables are disabled, caused by malformed GROUP BY clause stripping.
    * Fixed improper stripping of boolean mode operators in LIKE clauses, ensuring consistent behavior between FULLTEXT and LIKE searches.

= 4.2.3 =

* Modifications:
	* [Pro] Added WooCommerce product indexing and custom meta field support.
	* Modernized Tom Select implementation for taxonomy and meta key searches.
	* Enhanced seamless mode logic and form generation.
	* Improved tracker response handling with better regex patterns.
	* Standardized Hook_Registry validation across WebberZone plugins.

* Fixed:
	* Some users would see no search results when seamless mode is off.

= 4.2.2 =

* Modifications:
	* Updated Freemius SDK to v2.13.0.
	* Upgraded Settings API.
	* Improved text highlighting.
	* The Settings screen's "Create Fuzzy Search Indexes" button now deletes and recreates the Fuzzy Search functions.
	* The Cache key is now created by eliminating unnecessary variations to improve cache efficiency.
	* New WebberZone Admin banner on Better Search admin screens for quick access to admin pages.

* Bug fixes:
	* Fixed an issue where the setup wizard notice could display on the wizard page.
	* Fixed parsing of excluded category slugs.
	* Fixed a translation string in the settings form.
	* Fixed handling of `<` and `>` in boolean search mode.
	* Fixed Boolean mode didn't work in some cases even when enabled in the Settings page.

* Security:
	* Fixed a stored XSS vulnerability.

= 4.2.1  =

* Modifications:
	* Updated Freemius SDK.
	* Handle `post_type` when passed through as a query variable.
	* Added REST API support for custom post type search queries.

* Bug fixes:
	* HTML entities are now decoded in the Live Search results.
	* Phrases with double quotes are correctly handled.

= 4.2.0 =

Release post: [https://webberzone.com/announcements/better-search-v4-2-0/](https://webberzone.com/announcements/better-search-v4-2-0/)

* Features:
	* [Pro] New: Efficient Content Storage and Indexing – Custom tables implementation for better performance and query optimization while maintaining the same relevance algorithm.
	* [Pro] New: MAX_EXECUTION_TIME hint for MySQL queries.
	* [Pro] New: LIKE fallback search.
	* New: Wizard to guide users through the setup process.
	* Copy to clipboard functionality for SQL queries in the Tools page.

* Modifications:
	* Improved caching in Core Query to catch score and blog ID.
	* New function: bsearch_get_blog_option() to get a Better Search option for a specific blog.
	* New network settings/tools page.
	* [Pro] A new button to fix any collation issues has been added to the Network Admin Settings page.
	* Updated Freemius SDK.
	* Live search displays a loading state while results are being fetched.
	* Fulltext indexes are now named `wz_title_content`, `wz_title`, and `wz_content` to ensure compatibility and optimize database space, especially when using Contextual Related Posts. After updating to this version, please recreate the indexes to benefit from the changes—until then, the plugin will use the previous index names.
	* Media Handler now supports the FIFU WordPress plugin for featured image detection.

* Bug fix:
	* Fixed an issue where the Live Search conflicted with Mega Menu Pro.
	* Fixed an issue where activating the Pro plugin while the Free plugin was active, or vice versa, would cause a fatal error.

= 4.1.3 =

* Modifications:
	* Moved Freemius SDK to vendor folder.
	* Relevance score in the template is hidden when there is no score for the post.

* Bug fixes:
	* Fix the minimum characters length setting.
	* Fixed DOMNodeInserted deprecated error in Live Search.
	* Fixed edge case issue where settings are not initialized when using multisite resulting in type errors.

= 4.1.2 =

* Features:
	* Added SQL injection detection for search terms.
	* New setting to set the minimum characters required for a fulltext search.

* Enhancements:
	* Live Search enhancements:
		* Added caching to improve performance.
		* Improved accessibility and keyboard navigation.

* Bug fixes:
	* Fixed an issue where post score was not being displayed.
	* Better Search form post type correctly uses `post_type` instead of `post_types` for better compatibility.
	* Fixed issue with search results not loading properly when Fuzzy Search is enabled and the search term is less than four characters.
	* Fixed issue with ordering by date didn't work when using Fuzzy Search.

= 4.1.1 =

* Bug fixes:
	* Fixed an issue where shortcode attributes were not properly sanitized.

= 4.1.0 =

Release post: [https://webberzone.com/announcements/better-search-v4-1-0/](https://webberzone.com/announcements/better-search-v4-1-0/)

* Features:
	* Better Search now loads globally and can be accessed using `better_search()`.

* Modifications:
	* Query improvements for better compatibility with Better Search Pro.
	* Improved accessibility of live search results particularly better keyboard navigation.
	* [Pro] Multisite search now respects the settings of each site.
	* [Pro] Better Fuzzy search compatibility with multisite search.
	* [Pro] Better compatibility with PolyLang when using Multisite search. However, PolyLang must be set up exactly the same on all sites of the multisite setup.

* Bug fixes:
	* [Pro] Fixed issues with permalinks and titles not loading properly when Multisite search is enabled.
	* [Pro] Fixed Multisite search when Seamless Mode is off.
	* [Pro] Fixed bugs with Fuzzy Search query in some cases.

= 4.0.5 =

* Modifications:
	* Updated Freemius SDK to v2.11.0

= 4.0.4 =

* Modifications:
	* Updated Freemius SDK to v2.10.1

* Bug fixes:
	* Search terms with three or less characters threw an error.
	* A quoted search string removes the = sign in add_query_arg if unescaped.

= 4.0.3 =

* Modifications:
	* Added font color (#000) to `.bsearch_highlight` class.
	* Only highlight words > 2 characters.

* Bug fixes:
	* Fixed a bug where post titles in search results were not highlighted properly.
	* Fix for highlighting when Seamless Mode is off.
	* Words with double or single quotes are properly highlighted.
	* Quotes are properly displayed in heatmap.

= 4.0.2 =

* Modifications:
	* Improved search term highlighting in post titles when accessed from the search results page, preventing conflicts with shortcodes calling `the_title` filter.
	* Deleting the free plugin should retain the settings for the Pro plugin.
	* Added WPML support for Settings' strings: Heatmap title for overall and daily searches.
	* A new button has been added to the Tools page to manually create the Better Search tables.
	* An admin notice is now shown when the Better Search tables are missing.

* Bug fixes:
	* Fixed the issue where database tables were not created in a new installation.

= 4.0.1 =

* Modifications:
	* Setting: "Filter whole words only" set to _true_ by default.

* Bug fixes:
	* Corrected the database upgrade notice that was incorrectly displayed for new users.
	* Fixed an issue where the search term was not highlighted in the post content when following a /search/ link.
	* Resolved an issue where the search term was incorrectly highlighted in the images' alt text.
	* Seamless mode didn't load correctly.

= 4.0.0 =

Release post: [https://webberzone.com/announcements/better-search-v4-enhance-wordpress-search-with-pro-features/](https://webberzone.com/announcements/better-search-v4-enhance-wordpress-search-with-pro-features/)

* Features:
	* New live search feature that shows search results as you type.
	* [Pro] New setting to enable and set the fuzzy search level. Once enabled, the plugin will attempt to find results if the search term is misspelt. This only works effectively for English words.
	* [Pro] Multisite search feature allowing network admins to select specific sites for cross-network searches. Sites not selected will function independently.
	* [Pro] New setting to only show search results above a certain relevance threshold.
	* [Pro] New setting to search the post slug.
	* [Pro] New setting *Enable REST API* allows the REST API to utilize the Better Search when enabled. [Read this knowledge base article for more information about how Better Search enhances the Search endpoint](https://webberzone.com/support/knowledgebase/better-search-rest-api/).

* Enhancements/Modifications:
	* Renamed `Better_Search` to `Better_Search_Core_Query`. Each of the methods now removes the filter from itself. It will also automatically parse wp_query parameters.
	* Updated `Better_Search_Core_Query` filters to use the class instead of `WP_Query`.
	* Display admin notice if any FULLTEXT index is missing and **Enable MySQL FULLTEXT searching** is enabled. This is only shown to admins and cannot be dismissed until the indexes are created.
	* Better Search results page now works with Block Templates. You can enable Seamless mode to use your theme's search template.
	* [Pro] Added a new button to create the indexes and display the index status on the settings page under the **Search tab for Enable MySQL FULLTEXT searching**.

* Bug fixes:
	* Quotes in search terms should work correctly now.

= 3.3.1 =

* Security fix: Potential Cross Site Scripting (XSS) vulnerability. Thanks to Abdi Pranata for reporting this via Patchstack [https://patchstack.com/](https://patchstack.com/)

= 3.3.0 =

Release post: [https://webberzone.com/better-search-v3-3-0](https://webberzone.com/better-search-v3-3-0)

This is a major release. Complete rewrite of the plugin code - Better Search now uses autoloading and namespaces. Database structure has been changed.

* Features:
	* New Admin Dashboard will show the number of searches and the top searches for the day, week, month and all time

* Enhancements:
	* The tables in the database have been changed for more optimized update queries. The plugin will prompt you to run the upgrade script when you update the plugin
	* Better Search Tracker doesn't use jQuery anymore
	* Uninstall now uses `get_sites()` behind the scenes to delete options from all sites in a multisite install
	* Blank searches will return no results
	* Better Search tables will only be deleted if you set `BETTER_SEARCH_DELETE_DATA` to true in you wp-config.php file

* Bug fixes:
	* Banned search filtering didn't work properly in some cases

= 3.2.2 =

* Enhancements:
	* Use `get_match_sql` instead of `score` in the order by clause
	* Support `meta_query` argument
	* New filter: `better_search_query_date_query`

* Bug fixes:
	* Checkbox in admin page always showed as modified

= 3.2.1 =

Release post: [https://webberzone.com/blog/better-search-v3-2-0/](https://webberzone.com/blog/better-search-v3-2-0/)

* Bug fixes:
	* Make stopwords an array by [@ezific](https://github.com/ezific)
	* Fix bsearch_extract_locations by [@mjsterling](https://github.com/mjsterling)

= 3.2.0 =

* Enhancements/modifications:
	* Only highlight whole words
	* Censor character has been modified to be a blank phrase instead of a space. Additionally multiple spaces will be replaced by a single space.
	* Description of the taxonomy is also searched

* Bug fixes:
	* MySQL error was generated if there were + signs with banned words in BOOLEAN mode
	* Fixed `bsearch_form` shortcode incorrect parameters
	* Queries with apostrophe gave errors
	* PHP 8.1 compatibility
	* Security fix when clearing cache

= 3.1.0 =

Release post: [https://webberzone.com/blog/better-search-v3-1-0/](https://webberzone.com/blog/better-search-v3-1-0/)

* Features:
	* New filter `bsearch_template_query_args` in the default template to modify arguments array passed to `Better_Search_Query`
	* New option **Highlight followed links**: if enabled, the plugin will highlight the search terms on posts/pages when visits them from the search results page
	* `the_bsearch_excerpt()` will now show the relevant part of the excerpt where applicable by default. You can override the arguments by filtering `the_bsearch_excerpt_args`

* Enhancements/modifications:
	* New argument `show_post_types` for `get_bsearch_form()` set as default to false. Arguments can be modified by overriding the filter `bsearch_form_args`
	* Highlighting now uses the referer and no longer requires a special query variable

* Bug fixes:
	* Post thumbnail size was ignored by `the_bsearch_post_thumbnail`
	* HTML entities were displayed instead of being processed
	* Show credit displayed twice
	* `post_type` arguments were incorrectly processed when empty
	* PHP error in `Better_Search::set_topscore()`
	* Resetting settings caused an infinite loop

= 3.0.3 =

Release post: [https://webberzone.com/blog/better-search-v3-0-0/](https://webberzone.com/blog/better-search-v3-0-0/)

* Bug fixes:
	* With seamless mode OFF, by default, all post types were being pulled even those not selected in the settings page
	* With seamless mode ON, caching incorrectly gave the same set of results
	* Exclude categories didn't save properly if the field is blanked out

= 3.0.2 =

* Enhancements/modifications:
	* New options to disable the display of relevance, post type, author, post date and taxonomies list on the custom search results page

* Bug fixes:
	* Fixed excerpt_length setting not used in the default template
	* All required attributes are now passed to the shortcodes

= 3.0.1 =

* Enhancements/modifications:
	* New option to disable the automatic addition of the stylesheet
	* Custom search results page now displays `Sort by` and `Sorted by`
	* New constant `BETTER_SEARCH_VERSION` that is used to enqueue scripts and styles

* Bug fixes:
	* If no `excerpt_length` is passed, the plugin will use the default value from the settings page
	* Better_Search is only initiated if it is a search results page
	* Custom results page excerpt is now highlighted

= 3.0.0 =

* Features:
	* New classes Better_Search_Query and Better_Search. The latter is a wrapper for WP_Query and brings all the power of WP_Query to Better Search. The former is the core class that filters the required functions as well as replaces the older seamless mode implementation
	* New settings to search taxonomies, comments, excerpt, meta, authors and comments. These will all return the posts corresponding where the search term is found in the above fields
	* New parameter `bydate` if set to true will sort posts by date
	* Advanced Search form now displays the select dropdown of post types that allows to search a specific post type
	* Highlight search terms on pages referred from the search results page
	* New stylesheet which is enqueued on search results page and singular posts/pages

* Enhancements/modifications:
	* `hellip` wrapped in `bsearch_hellip` span tag for easy access
	* Transients will be deleted when the plugin is removed

* Bug fixes:
	* Resetting settings caused issues for the default styles and color fields
	* Uninstalling didn't delete the option key from database.

* Deprecated:
	* PHP 5.x support has been dropped and attempting to install the plugin on these installs will throw errors!
	* Multitude of functions have been deprecated. Check the deprecated.php file for the full list. Deprecated functions will also throw up a warning
	* Aggressive Search mode has been removed
	
= 2.5.3 =

Release post: [https://webberzone.com/blog/better-search-v2-5-0/](https://webberzone.com/blog/better-search-v2-5-0/)

* Bug fixes:
	* Security fix
	* Variable fix for LIMIT clause

= 2.5.2 =

* Bug fixes:
    * Password protected posts will no longer show the excerpt but a default message

= 2.5.1 =

* Bug fixes:
	* Custom CSS box would not save

= 2.5.0 =

* Features:
    * New section under Better Search &raquo; Tools to export and import settings. Best option if you'd like the same configuration across multiple WordPress sites

* Enhancements:
	* If thumbnails are enabled on search results page with seamless mode off, the plugin will search for multiple option in addition to the post thumbnail
	* Admin scripts are no longer loaded into the head - but using a separate JavaScript file
	* Implemented CodeMirror to format custom styles box
	* Replaced jscolor with WordPress color picker
	* New filters to modify the style, class, title

* Bug fixes:
	* Fixed notices in PHP 7.4 when viewing popular searches listings
	* Link to Better Search plugin page was not nofollow

= 2.4.0 =

Release post: [https://webberzone.com/blog/better-search-v2-4-0/](https://webberzone.com/blog/better-search-v2-4-0/)

* Features:
	* New interface in the admin area to view popular searches. You can also delete the search results from this page
	* New setting *Number format count* under General to turn on/off the number formating of the search count
	* New setting *Exclude Categories* under Search to exclude posts that belong to certain categories
	* New setting *Stop query on banned words filter* under Search to stop searching if the search query contains any word from the banned list i.e. "Filter these words" setting. If you have seamless mode off, Better Search will display an error message. With seamless mode on, this will give a Nothing found message. You can customize it by editing your theme
	* New setting *Filter whole words only* to only filter the full words from the banned list. When activated, partial words will no longer be blocked. You will need to update your banned words list to record more words that you would like filtered

* Bug fixes:
	* Options with checkboxes that haven't been saved in the database should display correctly
	* Fixed `bsearch_read_options is deprecated` message on activation

= 2.3.0 =

Release post: [https://webberzone.com/blog/better-search-v2-3-0/](https://webberzone.com/blog/better-search-v2-3-0/)

* Features:
	* New option to disable aggressive searching when no results are found

* Enhancements:
	* HTML markup for the search results page when seamless mode is OFF has been rewritten with several new classes. [View example markup](https://gist.github.com/ajaydsouza/5f88766b9ea6cad3b032533383733813)

* Bug fixes:
	* WHERE clause will be the same with Seamless mode ON or OFF
	* The plugin will only force BOOLEAN mode if no results are found and this wasn't already enabled

For previous changelog entries, please refer to the separate changelog.txt file

= 2.2.4 =

* Features:
	* Searches are now tracked using Query Variables

= 2.2.3 =

* Bug fix:
	* Fixed security issue. Reported by [Ryan Dewhurst](https://wpvulndb.com/vulnerabilities/9236)
	* WHERE clause is not replaced in seamless mode

= 2.2.2 =

* Bug fixes:
	* Phrase searches and searches with double quotes should now work properly
	* Specified one instance of a missing table prefix to avoid conflicts

= 2.2.1 =

* Bug fixes:
	* Fixed "Fatal error: Can't use function return value in write context"
	* Specified table prefix to avoid conflicts
	* Fixed code in Tools page for dropping index

= 2.2.0 =

* Features:
	* New option to exclude password protected posts from the results
	* New option to exclude post/page or custom post type IDs from the results

* Enhancements:
	* Admin interface now uses the Settings API - Please double check your settings. You can delete the old settings using the Tools sub-menu
	* New shortcode `bsearch_form` to display the Better Search custom search form
	* Use `template_include` instead of `template_redirect`
	* Seamless mode now uses Better Search queries directly instead of passing post IDs

* Deprecated:
	* $bsearch_url, bsearch_default_options(), bsearch_read_options(), bsearch_clause_prepare()

= 2.1.1 =

* Bug fixes:
	* Sanitisation doesn't strip out + and -
	* Highlight works properly when using quotations, plus or minus

= 2.1.0 =
* Features:
	* Cache enable/disable option + Clear cache button. Replaces "Delete transients"
	* Search form widget. Find it under Appearances > Widgets or in the Customizer
	* Heatmap search widget: Display the popular searches heatmap using `[bsearch_heatmap]`

* Enhancements:
	* Query filters now work for the LIKE search as well
	* New filter to override the censor character (currently a space) e.g. usage at https://gist.github.com/ajaydsouza/f23f35704431485c6922
	* Banned terms will now filter the main search query and will no longer display the search term even in seamless mode

* Bug fixes:
	* Highlighting now works when the search term has double or single quotes

= 2.0.1 =
* Bug fixes:
	* Bug where highlighting search terms broke HTML in links

= 2.0.0 =
* Features:
	* Network Activate and Deactivate the plugin on WordPress Multisite
	* Option to highlight search results. If missing, add: <code>.bsearch_highlight { background:#ffc; }</code> under Custom Styles
	* Fully filterable search query
	* Recreate Index button in the settings page
	* Delete transients button in the settings page

* Enhancements:
	* Better Search will now try BOOLEAN MODE and non-FULLTEXT modes in case FULLTEXT search doesn't return any results
	* Deprecated always dynamic heatmap option that bypassed cache
	* Reorganised admin interface
	* Seamless mode is now the default mode
	* Better Search uses transients to catch results when not using seamless mode
	* Search form uses `class` instead of `id`

* Bug fixes:
	* Seamless mode would overwrite all queries, even those outside the loop
	* WordPress widget settings

= 1.3.6 =
* Bug fixes:
	* Fixes missing wick files in Settings page 404 error

= 1.3.5 =
* Bug fixes:
	* Seamless mode interfered with the Media search in the Admin
	* Potential Reflective XSS vulnerability

= 1.3.4 =
* Features:
	* Option to add `noindex,nofollow` meta tag to the header

* Enhancements:
	* Tracking script now set to bypass <a href="https://support.cloudflare.com/hc/en-us/articles/200168056-What-does-Rocket-Loader-do-">Rocket Loader</a>

* Bug fixes:
	* Class of header row on search results page. You can now add your custom styles to `bsearch_nav_row1` and `bsearch_nav_row2`
	* Widget search heatmap colours were not loaded properly

= 1.3.3 =
* Features:
	* Responsive admin interface
	* Seamless integration mode. With this enabled, you can benefit from relevant search results displayed how your theme intended it to be!
	* Option to turn off tracking searches of Admins and Editors

* Enhancements:
	* Modified `get_bsearch_heatmap` to accept an array of parameters. If you're using this function, please note the modified usage in the FAQ
	* Reformatted code to follow WordPress PHP Standards

* Bug fixes:
	* Widget initialisation

= 1.3.2 =
* Features:
	* Profanity filter. Courtesy <a href="http://banbuilder.com/">Banbuilders</a>
	* Option to turn of the search results tracking. Ideal if you don't care about the popular search terms on your blog
	* Option to include the thumbnails in the search results

* Enhancements:
	* Search results now have better pagination. This is especially good when you have lots of search results - Thanks to J Norton for this feature
	* Plugin should now return results even if the search word is less than 4 characters

* Bug fixes:
	* Bug fixes - Thanks to Rich for some of the fixes

= 1.3.1 =

* Bug fixes:
	* PHP Notices

= 1.3 =
* Features:
	* New option to activate BOOLEAN mode of MySQL FULLTEXT searching. <a href="https://dev.MySQL.com/doc/refman/5.0/en/fulltext-boolean.html" target="_blank">Check the MySQL docs for further information on this</a>
	* Custom post type support. Now choose what visitors are allowed to search
	* Links in the search heatmap are no-follow by default. You can turn this off in the Settings page
	* Option to make make heatmap links to open in a new window
	* Option to turn off the display of the heatmap on the results page
	* New CSS classes for heatmaps on the search results page - `heatmap_daily` and `heatmap_overall`

* Enhancements:
	* Revamp of admin interface of the plugin

* Bug fixes:
	* Possible cross-site request forgery issue in the Settings page

= 1.2.1 =
* Bug fixes:
	* "Missing argument" error for heatmaps

= 1.2 =
* Features:
	* Updates for better search template compatibility. New template included in this release
	* New template file based on Twenty Eleven WordPress theme

* Enhancements:
	* Relevance score is now displayed as a percentage
	* Default search colours for the heatmap are grey and black instead of blue and red
	* Plugin will not add a link to <a href="https://webberzone.com/plugins/better-search/">Better Search homepage</a> by default
	* New WordPress widget to display the popular searches in your sidebar

* Bug fixes:
	* Daily search terms were not being cleared

= 1.1.7 =
* Enhancements:
	* Two new fulltext indexes added... the first step to better control on search results

= 1.1.6 =
* Bug fixes:
	* Bug fixed in display of daily search heatmap

= 1.1.5 =
* Bug fixes:
	* Fixed a bug

= 1.1.4 =
* Bug fixes:
* Fixed a bug

= 1.1.3 =
* Bug fixes:
	* Critical Fix: Possible security hole

= 1.1.2 =
* Bug fixes:
	* Searches not tracked when not using template

= 1.1.1 =
* Bug fixes:
	* Certain search terms didn't work

= 1.1 =
* Enhancements:
	* Plugin now allows use of template file. Create a file `better-search-template.php` in your themes folder.
	* Pages are also included in the results. You can turn it off in options
	* Drafts are no longer included in results
	* WordPress Title rewritten
	* Added support for localization.

= 1.0 =
* Release

