Commit Graph

372 Commits

Author SHA1 Message Date
Barry Hughes c503f5d637
Merge pull request #29896 from woocommerce/add/29610
Filter catalog products by attribute using the new lookup table
2021-06-08 07:37:06 -07:00
Michael P. Pfeiffer 41ff4e3b20 Rename Recent Viewed Products widget to Recently Viewed Products list 2021-05-20 11:35:39 +02:00
Michael P. Pfeiffer 6fa955baca Block Widgets: rename Products and Products by Rating widgets 2021-05-19 15:49:29 +02:00
Claudio Sanches c35ed5e1a6
Merge pull request #29847 from codetot/fix/widget_products
Set loop prop to widget products to adapt condition on single product page
2021-05-17 12:40:05 -03:00
Nestor Soriano e085898fc4
Use the product attributes lookup table for the filter by attribute widget when enabled. 2021-05-14 17:04:25 +02:00
Khoi Nguyen aa913b59ed Set loop prop to widget products to set condition on single product page 2021-05-06 22:22:58 +07:00
roykho 387e095a01 Update deprecated jQuery functions in includes folder 2021-04-28 16:21:59 -05:00
Mauricio Urrego 26c7e238f6 Avoids redirect caused by some custom permalink structures. 2021-03-18 14:51:09 +01:00
Nestor Soriano 4411a394dc Reintroduce adjust_posts_count, and remove unnecessary comment.
We can't remove that method since it's public, but its body has
been changed so that it just returns the input unchanged.
2020-09-10 15:17:43 +02:00
Nestor Soriano 70a1cb2f1f Revert improved filtering for variations.
This commit reverts the functionality introduced in PR #26260
(later refined by #27175, #27190, #27508) in which filtering by
attribute using the layered nav widget was improved to handle the
cases of variations out of stock. The revert is a response to the
numerous problems reported by users in Woo 4.4 and 4.5

Not all the code has been reverted, only the code that resulted in
visible functionality changes. Thus, the code that generates
term relationships for variations is still in place to keep database
consistency and to keep the reverting changes to the minimum needed.
2020-09-09 17:36:26 +02:00
Nestor Soriano 958ecf1d48 Fix the SQL query to count products in the filter by attribute widget
The previous query was counting variable products twice when they
had a variation with a concrete value for the attribute and also
a variation with "Any..." value for the same attribute.
2020-09-07 16:44:14 +02:00
Nestor Soriano 43642f7835 Enhance the query for "Any" variations in filter by attribute widget.
The new query fixes a bug where variations were being counted twice:
if a product was included in both the queries then it would be counted
differently and added; e.g. when a product had two variations,
one with "Any" attribute and other with a attribute that has a value.

The new query also optimizes performance, so that filter conditions
can be improved and better indexes can be used.
2020-09-04 11:29:50 +02:00
Nestor Soriano 417bcf8fff Split the query for counting terms in the filter by attributes widget.
For performance reasons the query is split in two: one for simple
products and variations with a concrete attribute value, and another
one for variations having "Any..." as the attribute value.
2020-09-02 16:22:25 +02:00
Nestor Soriano 07b62dabbd Improve the query to retrieve "Any..."-attributed variations in filtering widget
The new query doesn't need empty attribute entries in the meta table,
therefore the code that generates them and the migration to backfill
the missing existing ones have been removed.
2020-09-01 16:47:41 +02:00
Nestor Soriano 3a583feab1 Change filter by attributes widget to count products, not variations.
Right now the filter by attributes widget counts available variations
(for variation products). This is confusing since the counter shows
numbers that are higher than the actual count of products displayed.

This commit changes the query used by the widget so that instead
of counting variations it returns the parent product ids, and then
counts the distinct values. This also covers the case of products
where some of the variations have concrete values and some have
"Any..." values.
2020-08-31 12:22:33 +02:00
Nestor Soriano a75da34a45 Fix filter by attribute widget now working for "Any..." attributes
When a variation product has an attribute with a value of "Any...",
and there's a filter by attribute widget for that attribute, then
that product won't be included in the counts displayed in the widget
(and if the count ends up being zero, the attribute won't be shown
in the widget).

This happens before since Woo 4.4, this widget works by looking at
entries in the term relationships table for varitions too
(used to do so for simple products and for "main" variable products
only), see PR #26260; but there are no such entries for
"Any..." attributes.

This commit fixes that by extending the SQL query used by the widget
to look for variations that have empty attribute values in the meta
table too.
2020-08-27 10:59:15 +02:00
Claudio Sanches d48f1d4e2e Fixed package tag usage 2020-08-05 13:36:24 -03:00
Nestor Soriano 681401850a Adjustments in the items count calculation on the nav filtering widget.
The calculations are now consistent with the change made to the
visibility of the variable products when using one or multiple filters.
2020-07-28 09:01:55 +02:00
Néstor Soriano e9d692f455 Apply suggestions from code review
Mostly adding "since 4.4.0" annotations and updating
db update functions from 4.2 to 4.4.

Co-authored-by: Claudio Sanches <contato@claudiosanches.com>
2020-07-28 09:01:55 +02:00
Nestor Soriano 9de1306c21 Fix counters in nav filtering widgets for variable products.
After the change that registers variation attributes as terms
(in addition to reigstering them as post meta) it is now time
to modify the get_filtered_term_product_counts methods in
WC_Widget_Layered_Nav so that it works consistently for both
variable and non-variable products. The logic for the counters
is now as follows:

with OR operator:
- Simple products: count the attributes of all visible products
  (unchanged behavior).
- Variable products: count attributes corresponding to
  visible variations.

with AND operator:
- Simple products: count the attributes of visible products but only
  for products that have all the selected (unchanged behavior).
- Variable products: find all the products for which all the variations
  corresponding to the selected attributes exist and are visible,
  then count the attributes corresponding to the visible variations
  of those products.

A product is "visible" if it's published, not excluded for catalog,
and has stock. Additionally, a variable product will not be considered
visible if the parent product is not.
2020-07-28 08:55:55 +02:00
Nestor Soriano c27283dffe Fix code sniffer errors in some files.
Fixed files:

includes/abstracts/abstract-wc-product.php
includes/class-wc-query.php
includes/wc-template-functions.php
includes/widgets/class-wc-widget-layered-nav.php
templates/loop/result-count.php
tests/unit-tests/util/class-wc-tests-wc-query.php
2020-07-28 08:47:29 +02:00
Christopher Allford 4ae1e1f5fc Extracted the repetitive Constants::get_constant( 'WC_VERSION' ) calls where possible 2020-02-04 14:02:57 -08:00
Christopher Allford 1d1413b4ee Replaced direct access of many constants with the Constants library 2020-01-31 22:18:47 -08:00
Christopher Allford 6ad091a9b7 Changed all of the constant accesses into corresponding Automattic\Jetpack\Constants usages 2020-01-28 21:21:29 -08:00
Sergey Ratushnuy bd647cd9cf Small fix 2020-01-21 18:03:01 +02:00
Sergey Ratushnuy 2d1ce22e25 Changed filter name 2020-01-21 17:29:58 +02:00
Sergey Ratushnuy e3ac006420 Add `woocommerce_top_rated_widget_args` filter for WC_Widget_Top_Rated_Products widget 2019-12-26 11:51:34 +02:00
Rodrigo Primo 7337ab60c2 Fix PEAR.Functions.FunctionCallSignature violations
This commit fixes all violations of the PEAR.Functions.FunctionCallSignature sniff automatically using phpcbf.
2019-12-20 15:25:23 -03:00
Rodrigo Primo 02ae8d1206
Merge pull request #24292 from woocommerce/fix/24116
Prevent PHP notices in WooCommerce widgets using Gutenberg's Legacy Widget Block
2019-12-03 14:25:05 -03:00
Rodrigo Primo 353945f638
Merge pull request #23384 from CasperBraske/CasperBraske-patch-1
Moved HTML from widget code to template file
2019-08-08 15:46:45 -03:00
Luis 0d80af01dc
Fixing code standards violations 2019-08-02 00:10:11 -03:00
Claudio Sanches 78c5a37b4b Prevent PHP notices in WooCommerce widgets using Gutenberg's Legacy Widget Block 2019-08-01 14:43:59 -03:00
parmarhardip 470b0a5424 I have updated the code with suggestion and tested it. Please review from your side. 2019-05-16 10:24:00 +05:30
parmarhardip d5337fac70 fix- 23589 I have fixed pricing issue. 2019-05-15 17:49:46 +05:30
Luis 99d85a2c02
Changing HTML string to template call
template/content-widget-price-filter.php
2019-04-19 00:18:24 -03:00
Mike Jolley 1274136b32 Check isset rather than empty so cart title can be removed 2019-04-18 13:10:42 +01:00
Francesco Pinto 69d4d9b221
Fixed Coding Standard 2019-03-23 20:58:36 +01:00
Francesco Pinto d1df273f9e
Fixed Coding Standards 2019-03-23 20:28:58 +01:00
Francesco Pinto c2bd9bcdf5
Add taxonomy-specific classes to active filters 2019-03-23 18:03:01 +01:00
Mike Jolley a3c2dcd8f2 Update from master 2019-03-08 09:50:56 +00:00
Mike Jolley 33c576a2fd
Merge pull request #22570 from woocommerce/performance/slow-term-queries
Improve slow term ordering queries
2019-03-07 16:33:01 +00:00
Mike Jolley e7bb5a8f41 Merge branch 'master' into experiment/product-sorting-index 2019-03-07 12:49:25 +00:00
Mike Jolley e1ff1bfae9 Update from master 2019-03-06 12:37:24 +00:00
Mike Jolley 16a0a3e27e Update from master 2019-03-05 19:03:01 +00:00
Mike Jolley 5af9d968e5 Update from master 2019-03-01 10:29:17 +00:00
Mike Jolley 611bf3b1dd Price filter + stock widget requires lookup table 2019-02-28 14:24:05 +00:00
Mike Jolley 7def966e4f Impoved JSON handling 2019-02-20 12:00:47 +00:00
Mike Jolley 3309276e82 Renamed table to wc_product_meta_lookup 2019-02-15 12:37:45 +00:00
Mike Jolley 7b6558e1df Correct table names and updater 2019-02-12 14:04:22 +00:00
Mike Jolley 47b37c7104 Queries 2019-02-11 14:42:54 +00:00