8ae444b201
* Introduce the new get_attribute_and_meta_counts method. * Ensure that if no term_slug or term_id is found for counting, the default list with all terms (with count equal zero) is returned instead. * update conditional for the slug, the empty state for requests without filter attributes and the condition query for 'and' * Introduce the get_terms_list method. * Remove the legacy get_attribute_counts method and update its calls to rely on the new get_attribute_and_meta_counts method instead. * Update the query to ensure that if a parent product has multiple identical attributes, they are counted once. * Update to start relying on the get_product_by_metas method for counting product metas * Add a new where_clause to only include product metas and attributes in the macro query if they are not empty. * Add wpdb->prepare to the macro query and the get_terms_list method. * Replace the raw atomic query for fetching the filtered terms with the new get_product_by_filtered_terms method. * Update the request params for the get_attribute_and_meta_counts method. * Update the request params for the product metas (min and max price). * Update the query and returned value on get_terms_list. * Update the validation for returning the default counts when no values are filtered. * Update the query on get_terms_list to use ->prefix * Update the variable for the query to rely on the filtered one. Update the min_price and max_price format on get_product_by_metas. * Ensure the get_product_by_filtered_terms method is triggered for each one of the filtered terms and update the macro query to include those term ids on the WHERE clause. * Make adjustments for the 'and' condition to work as expected. * Ensure the queryState.attributes is properly added as a param to the API request to correctly fetch the attribute count data. * Ensure the get_product_by_metas method is only triggered when at least one of the metas in the request is not empty. * Join type update: for the 'and' (all) filter condition, items with the count zero are not displayed. * wpdb prepare the where clauses * Update the get_product_by_filtered_terms query wpdb prepare params * update the get_product_by_metas method's where clause preparation. * Update the where clause preparation for get_attribute_and_meta_counts so we don't rely on interpolated variables anymore. * Adjust the get_attribute_and_meta_counts method for usage alongside the rating filter. * Adjust the query for fetching the attribute counts for filtered ratings. * Add support for the filter by stock. * Ensure the product attribute counts are correct if the parent product receives a rating. * Ensure product_or_parent_id is used only when the filter by rating is used, not affecting price or stock filters. * Add the missing else condition. * Enable caching. * Address CR * Update query for average rating. * remove file accidentally commited. * When multiple ratings are selected, make sure the where clause is updated accordingly for each one of them. * Start updating the stock_status logic to account for when multiple options are selected by the user. * Ensure the counts are properly updated when more than one stock status is selected. * Ditch the is_array condition for the average_rating counts as is always an array. * Deprecate the second param attributes for the get_attribute_counts method. * Add the filtered_attribute to the transient_key * Bypass cache if WP_DEBUG is enabled. * Update formatting for macro query. * Fix mixed tabs spaces on query * Fix PHP unit tests for the new attribute counts. * Update spacing/formatting for SQL queries. * Minor: update indentation for the main SQL query --------- Co-authored-by: roykho <roykho77@gmail.com> |
||
---|---|---|
.. | ||
e2e | ||
js | ||
mocks | ||
php | ||
utils | ||
bootstrap.php |