Releases: 10up/ElasticPress
Version 5.1.3
Fixed
- Missing nonces on some sync trigger URLs, making them require a manual interaction from the user. Props @felipeelia via #3933.
See: https://github.com/10up/ElasticPress/milestone/86?closed=1
Version 5.1.2
This is a security release affecting all previous versions of ElasticPress.
Security
- Missing nonce verification for the sync triggered during activation of some features. Props @felipeelia and @dhakalananda via #3929.
- Missing nonce verification for retrying the EP connection and fixed PHPCS linting rules. Props @felipeelia via #3932.
See: https://github.com/10up/ElasticPress/milestone/85?closed=1
Version 5.1.1
Changed
- Update Support Article URLs. Props @felipeelia via #3919.
Fixed
See: https://github.com/10up/ElasticPress/milestone/84?closed=1
Version 5.1.0
Added
- [Filters] New
ep_facet_enabled_in_editor
filter to enabled facet blocks in the post editor. Props @JiveDig and @felipeelia via #3845. - Official support to Elasticsearch 8.x. Props @felipeelia via #3854.
- A new Sync errors tab, with errors grouped by type and links to support documentation when available. Props @JakePT and @apurvrdx1 via #3803.
- [WooCommerce] HPOS compatibility notice for WooCommerce Orders. Props @felipeelia via #3861.
- [Synonyms] A new settings screen with the the ability to bulk delete synonyms, support for many-to-many replacements, and a new type of synonym for terms with a hierarchical relationship, called hyponyms. Props @JakePT and @apurvrdx1 via #3814.
- Infinite loop when using excerpt highlighting with posts that use blocks that print an excerpt. Props @felipeelia and @JakePT via #3867.
- Context parameter to the
get_capability()
function. Props @felipeelia and @selim13 via #3866. - A tooltip for meta keys to the weighting screen to allow seeing the full key if it has been truncated. Props @JakePT via #3865.
- New
ep_weighting_options
filter to modify the weighting dashboard options. Props @burhandodhy via #3827. - New
ep_post_test_meta_value
filter. Props @felipeelia via #3850. - New message related to indices limits on ElasticPress.io. Props @felipeelia via #3898.
Changed
- Acknowledge all Elasticsearch modules, making the Documents feature available in ES 8 installations by default. Props @felipeelia, @Serverfox, and @jerasokcm via #3844.
- [Documents] Index CSV and TXT file contents. Props @felipeelia via #3885.
- [Documents] Only set documents-related parameters if no post type was set or if the list already contains attachments. Props @felipeelia via #3889.
- Automatically open the error log when a sync completes with errors. Props @JakePT and @felipeelia via #3895.
- Aggregations created with the 'aggs' WP_Query parameter, are now retrievable using
$query->query_vars['ep_aggregations']
. Props @felipeelia via #3847. - Major refactor of the
Term::format_args()
method and conditionally set search fields for term queries in REST API requests. Props @felipeelia and @mgurtzweiler via #3869. - Replaced
lee-dohm/no-response
withactions/stale
to help with closing no-response/stale issues. Props @jeffpaul via #3870. - Bumped actions/upload-artifact from v3 to v4. Props @iamdharmesh via #3897.
- Required node version. Props @oscarssanchez via #3896.
Fixed
- [Autosuggest] Hide the Autosuggest Endpoint URL field for EP.io users. Props @felipeelia and @JakePT via #3835.
- [Autosuggest] Google Analytics integration gtag call. Props @felipeelia and @JakePT via #3835.
- [Autosuggest] Link click when using a touchpad. Props @romanberdnikov via #3818.
- [Autosuggest] Pressing Enter to select an Autosuggest suggestion would instead open Instant Results. Props @JakePT via #3864.
- [Synonyms] Fatal error when saving synonyms if an index does not exist. Props @felipeelia, @MARQAS, @randallhedglin, and @bispldeveloper via #3846.
- [Synonyms] Fix Synonyms case sensitive issue. Props @burhandodhy via #3857.
- [Documents] Media search returns no result in admin dashboard. Props @felipeelia and @burhandodhy via #3837 and #3871.
- [WooCommerce] E2e tests. Props @felipeelia via #3848.
- [Instant Results] A default post type filter set by a field in the search form was cleared if a new search term was entered. Props @JakePT and @burhandodhy via #3891.
- Inconsistent search results when calling the same function via PHP and Ajax. Props @burhandodhy via #3875.
- Unit test related to blog creation. Props @felipeelia and @burhandodhy via #3839.
- Correct PHPdoc return type for
Elasticsearch::index_document
and related methods. Props @ictbeheer via #3881. - Unnecessary horizontal scroll for the
<pre>
tag on the status report page. Props @burhandodhy via #3894.
Security
- Bumped
composer/composer
from 2.6.5 to 2.7.0. Props @dependabot via #3831
See: https://github.com/10up/ElasticPress/milestone/79?closed=1
Version 5.0.2
Changed
- [Terms] Counts are now calculated with
wp_count_terms()
inquery_db
. Props @rebeccahum via #3791. - Composer and npm files are now part of the final package. Props @felipeelia via #3810.
Fixed
- [WooCommerce] Not use a hard-coded list of order post types. Props @felipeelia via #3807.
- [Autosuggest] Stop calling the get
-autosuggest-allowed
endpoint to build the REST API schema. Props @felipeelia via #3809.
Security
- Bumped
follow-redirects
from 1.15.3 to 1.15.4. Props @dependabot via #3808.
See: https://github.com/10up/ElasticPress/milestone/83?closed=1
Version 5.0.1
Added
- Failed queries in the Index Health page will now be outputted with their error messages. Props @felipeelia and @pvnanini via #3776.
Fixed
- Queries failing due to a "request body is required" error. Props @felipeelia via #3770.
- Fatal error when site has a bad cookie. Props @burhandodhy via #3778.
- Broken i18n of some strings. Props @felipeelia and @iazema via #3780.
- PHP Warning on term archive pages when the term was not found. Props @felipeelia and @Igor-Yavych via #3777.
- PHP warning when using block themes. Props @felipeelia and @tropicandid via #3781.
- Several typos. Props @szepeviktor via #3750.
- Index cleanup process - offset being zeroed too late. Props @pknap via #3765.
- PHP warning in site health page. Props @turtlepod via #3758.
- ReactDOM.render is no longer supported in React 18. Props @burhandodhy and @felipeelia via #3686.
- E2e tests with WordPress 6.4. Props @felipeelia via #3771.
- PHP Setup in GitHub Actions. Props @felipeelia via #3784.
See: https://github.com/10up/ElasticPress/milestone/82?closed=1
Version 5.0.0
ElasticPress 5.0.0 contains some important changes. Make sure to read these highlights before upgrading:
- This version does not require a full reindex but it is recommended, especially for websites using synonyms containing spaces. See #3610.
- Meta keys are not indexed by default anymore. The new Weighting Dashboard allows admin users to mark meta fields as indexables. The new
ep_prepare_meta_allowed_keys
filter allows to add meta keys programmatically. See #3068. - Features now have their fields declared in JSON. Custom features may need to implement the
set_settings_schema()
method to work. See #3655. - The
Users
feature was moved to the ElasticPress Labs plugin and is no longer available in this plugin. If you use this feature, make sure to install and configure EP Labs before upgrading. See #3670. - The
Terms
andComments
features are now hidden by default for sites that do not have them active yet. Check our blog post for more info. See #3691. - New minimum versions (see #3668) are:
Min Max Elasticsearch 5.2 Unset WordPress 6.0+ latest PHP 7.4+ latest
Added
- New Sync page. Props @JakePT, @felipeelia, @apurvrdx1, @brandwaffle, @anjulahettige, @burhandodhy, and @MARQAS via #3657 and #3735.
- New feature settings screen. Props @JakePT, @felipeelia, @apurvrdx1, @brandwaffle, and @anjulahettige via #3712.
- New weighting dashboard with support for making meta fields searchable. Props @JakePT, @mehidi258, and @felipeelia via #3068.
- New Date Filter Block. Props @burhandodhy, @JakePT, and @felipeelia via #3700.
- Sync history to the Sync page. Props @JakePT, @felipeelia, @apurvrdx1, @brandwaffle, and @anjulahettige via #3664.
- Final status of syncs (success, with errors, failed, or aborted.) Props @felipeelia and @JakePT via #3669.
- REST API endpoint at
elasticpress/v1/features
for updating feature settings. Props @JakePT via #3676. - New
ElasticsearchErrorInterpreter
class. Props @felipeelia via #3661. - New
default_search
analyzer to differentiate what is applied during sync and search time. Props @felipeelia and @MARQAS via #3610 and #3703. - The sync page now describes what triggered the current sync, and previous syncs. Props @JakePT via #3722.
- Weighting and Synonyms Dashboards to multisites. Props @felipeelia via #3724.
- No-cache headers to sync calls. Props @felipeelia via #3731.
Changed
- Abstracted Sync page logic into a provider pattern. Props @JakePT via #3630.
- Moved syncing from an
admin-ajax.php
callback to a custom REST API endpoint with support for additional arguments. Props @JakePT via #3643. - Store previous syncs info, changed option name from
ep_last_index
toep_sync_history
. Props @felipeelia and @JakePT via #3647. - Features settings declared as JSON. Props @felipeelia and @JakePT via #3655.
- Tweaked layout and notifications style on the Status Report screen for consistency with the updated Sync page. Props @JakePT via #3662.
- Moved REST API endpoint definitions to controller classes. Props @JakePT via #3650.
- SyncManager array queues are now indexed by the blog ID. Props @sathyapulse and @felipeelia via #3689.
- Comments and Terms are now hidden by default. Props @felipeelia via #3691.
- WooCommerce-related hooks are now removed when switching to a site that does not have WC active. Props @felipeelia and @MARQAS via #3688.
- Run e2e tests against the minimum supported WordPress version. Props @felipeelia via #3540.
- Several tweaks in the Features settings API. Props @JakePT via #3708 and #3709.
- EP Settings are now reverted if it is not possible to connect to the new ES Server. Props @felipeelia, @burhandodhy, and @scottbuscemi via #3684.
- Node packages updated. Props @felipeelia via #3706.
- Updated the labels of feature settings and options for consistency and clarity. Props @JakePT via #3721.
- Depending on the requirements, some feature settings are now saved to be applied after a full sync. Props @felipeelia and @JakePT via #3720.
- Minimum requirements. Props @felipeelia and @brandwaffle via #3668.
- Old features will have their settings displayed based on their default setting values. Props @felipeelia and @JakePT via #3728.
- Radio and checkbox settings were changed from booleans to strings. Props @felipeelia and @JakePT via #3730.
- The troubleshooting article link was updated. Props @felipeelia and @anjulahettige via #3748.
Deprecated
- The
IndexHelper::get_last_index
method was replaced byIndexHelper::get_last_sync
. See #3647. - The
FailedQueries::maybe_suggest_solution_for_es
method was replaced byElasticsearchErrorInterpreter::maybe_suggest_solution_for_es
. See #3661. Weighting::render_settings_section
,Weighting::handle_save
,Weighting::redirect
, andWeighting::save_weighting_configuration
were deprecated in favor of React components. See #3068.
Removed
- Users-related files from the main plugin. Props @felipeelia via #3670.
- Removed mapping files related to older versions of Elasticsearch. Props @MARQAS via #3704.
Fixed
- Docblock for the
ep_facet_renderer_class
filter. Props @misfist via #3696. - Instant Results console warning. Props @burhandodhy via #3687.
- Total fields limit message interpretation. Props @felipeelia @JakePT vi...
Version 4.7.2
Note that starting from the ElasticPress 5.0.0 release the Users
feature will be moved to the ElasticPress Labs plugin. The Terms
and Comments
features will remain in ElasticPress but will be available only if enabled via code. Check our blog post for more info.
Added
- New
ep_highlight_number_of_fragments
filter. Props @dgnorrod and @felipeelia via #3681. -
=PHP 7.0 version check. Props @bmarshall511 and @felipeelia via #3641.
- GitHub action to automatically open a new issue when a new version of WordPress is released. Props @felipeelia via #3666.
Removed
- Unnecessary aliases in use statements. Props @felipeelia via #3671.
Fixed
- Calls to
ep_woocommerce_default_supported_post_types
were ignored. Props @felipeelia and @MARQAS via #3679. - WooCommerce Orders search field disappearing when Orders Autosuggest receives an unexpected response from ElasticPress.io. Props @JakePT and @anjulahettige via #3682.
- Call composer while building docs. Props @felipeelia via #3625.
- Make sure
post__not_in
andpost_status
are translated into arrays, not objects. Props @felipeelia via #3652 and #3680. - Updated phpDoc entries. Props @renatonascalves via #3635.
- Docblock for
Utils\get_option
return type. Props @felipeelia via #3653. - Docblock for
ep_capability
andep_network_capability
filters. Props @burhandodhy via #3685. - PHP warning related to the Autosuggest template generation. Props @felipeelia via #3651.
- WooCommerce unit tests running multiple times. Props @felipeelia via #3656.
- Display the meta range facet block in versions prior to WP 6.1. Props @felipeelia and @MARQAS via #3658.
- Number of expected arguments for
add_attachment
andedit_attachment
. Props @burhandodhy via #3690. - Error while running
composer install
on PHP 8. Props @burhandodhy via #3683.
Security
- Bumped
composer/composer
from 2.5.8 to 2.6.4. Props @dependabot via #3672.
See: https://github.com/10up/ElasticPress/milestone/78?closed=1
Version 4.7.1
Note that starting from the ElasticPress 5.0.0 release the Users
feature will be moved to the ElasticPress Labs plugin. The Terms
and Comments
features will remain in ElasticPress but will be available only if enabled via code. Check our blog post for more info.
Added
- Synonyms and weighting settings added to the status report. Props @felipeelia via #3609.
Changed
- Composer packages are namespaced by Strauss. Props @felipeelia and @junaidbhura via #3621.
- E2e tests now log the formatted query info from Debug Bar ElasticPress. Props @felipeelia via #3613.
Fixed
- WooCommerce products sorted by popularity are now always sorted in a descending order. Props @felipeelia and @burhandodhy via #3619.
- E2e tests with WordPress 6.3. Props @felipeelia via #3599.
See: https://github.com/10up/ElasticPress/milestone/77?closed=1
Version 4.7.0
Note that starting from the ElasticPress 5.0.0 release the Users
feature will be moved to the ElasticPress Labs plugin. The Terms
and Comments
features will remain in ElasticPress but will be available only if enabled via code. Check our blog post for more info.
Added
- Exclude Media Attachments from search results. Props @burhandodhy via #3539.
- New
Default to Site Language
option in the language dropdown in ElasticPress' settings page. Props @felipeelia via #3550. - Compatibility with block themes for the Facet meta blocks. Props @felipeelia via #3498.
- Integrate Did You Mean feature in the Instant Results. Props @burhandodhy and @JakePT via #3564.
- All blocks now support styling features in themes that support them. Props @JakePT via #3403 and #3584.
- Descriptions and keywords have been added to all blocks. Props @JakePT via #3403.
- New
ep_stop
filter, that changes the stop words used according to the language set. Props @felipeelia via #3549. - New
get-index-settings
WP-CLI command. Props @felipeelia via #3547. - New
ep_facet_tax_special_slug_taxonomies
filter. Props @oscarssanchez via #3506. - New
--stop-on-error
flag to thesync
command. Props @oscarssanchez via #3500. - New
get
WP-CLI command. Props @felipeelia via #3567. - Transient utility functions. Props @felipeelia via #3551.
- Indices' language settings in status reports. Props @felipeelia via #3552.
- Initial changes to implement a DI Container. Props @felipeelia and @tott via #3559.
- New
$only_indexable
parameter to theUtils\get_sites()
function. Props @felipeelia via #3577.
Changed
- WooCommerce feature only integrates with queries that are the main query, a search, or have ep_integrate set as true. Props @felipeelia via #3546.
- Miscellaneous changes to all blocks, including their category, names, and code structure. Props @JakePT, @oscarssanchez, and @felipeelia via #3403.
- The Facets feature was renamed to Filters. Props @JakePT and @felipeelia via #3403, #3581, and #3597.
- The WooCommerce feature was refactored, separating code related to products and orders. Props @felipeelia via #3502.
- Transients deletion during uninstall. Props @felipeelia via #3548.
- Bump Elasticsearch version to 7.10.2 for E2E tests. Props @burhandodhy via #3556 and #3561.
- Refactor
get_settings()
usage inside ElasticPress features. Props @oscarssanchez and @felipeelia via #3558. - In a multisite, if a site is indexable or not is now stored in site meta, instead of a blog option. Props @felipeelia via #3571.
- Autosuggest authenticated requests are not cached anymore and are only sent during the sync process or when the weighting dashboard is saved. Props @felipeelia and @kovshenin via #3566.
- Use
createRoot
instead ofrender
to render elements. Props @oscarssanchez, @burhandodhy, @JakePT, and @felipeelia via #3573 and #3595. - Moved methods to abstract Facet classes. Props @oscarssanchez and @felipeelia via #3499.
- Only display available languages in the Settings screen. Props @felipeelia and @JakePT via #3587.
- WooCommerce feature description. Props @brandwaffle, @felipeelia, and @JakePT via #3592.
Deprecated
Autosuggest::delete_cached_query()
was deprecated without a replacement. See #3566.EP_Uninstaller::delete_related_posts_transients()
andEP_Uninstaller::delete_total_fields_limit_transients()
was merged intoEP_Uninstaller::delete_transients_by_name
. See #3548.- The
ep_woocommerce_default_supported_post_types
filter was split intoep_woocommerce_orders_supported_post_types
andep_woocommerce_products_supported_post_types
. See #3502. - The
ep_woocommerce_supported_taxonomies
filter is nowep_woocommerce_products_supported_taxonomies
. See #3502. - All old
WooCommerce\Orders
methods were migrated to the newWooCommerce\OrdersAutosuggest
class. See #3502. - The
Elasticsearch::clear_total_fields_limit_cache()
method was replaced byElasticsearch::clear_index_settings_cache()
. See #3552. - Several methods that were previously part of the
WooCommerce\WooCommerce
class were moved to the newWooCommerce\Product
class. See #3502. - Several methods that were specific to Facet types were moved to the new
Block
andRenderer
abstract classes. See #3499.
Fixed
- Same error message being displayed more than once on the Dashboard sync. Props @felipeelia, @MARQAS, @tott, and @wildberrylillet via #3557.
- Sync media item when attaching or detaching media. Props @MARQAS and @felipeelia via #3562.
- Display "Loading results" instead of "0 results" on first search using Instant Results. Props @oscarssanchez and @JakePT via #3568.
- Highlighting returning inaccurate post title when partial/no term match on Instant Results. Props @oscarssanchez, @JakePT, and @tomi10up via #3575.
- Warning in Orders Autosuggest:
"Creation of dynamic property $search_template is deprecated"
. Props @burhandodhy via #3591. - Warning while using PHP 8.1+:
Deprecated: version_compare(): Passing null to parameter #1 ($version1) of type string is deprecated
. Props @felipeelia and @burhandodhy via #3593. - Warning in the metadata range facet renderer:
Undefined array key "is_preview"
. Props @felipeelia and @burhandodhy via #3594.
Security
- Bumped
word-wrap
from 1.2.3 to 1.2.4. Props @dependabot via #3543. - Bumped
tough-cookie
from 4.1.2 to 4.1.3 and@cypress/request
from 2.88.10 to 2.88.12. Props [@dependabo...