A customizable, open-source ecommerce platform built on WordPress. Build any commerce solution you can imagine.
Go to file
Nestor Soriano 50e8f27bc7 Fix visibility of variable products with layered nav filtering.
The layered nav filtering doesn't work well with variable products
when some variations have stock and other don't. When a term is
selected in the widget, a variable product having no stock for
the variation corresponding to that term but having stock for
other variations will be displayed, but it shouldn't.

This commit fixes that by introducing two changes:

- A new override of "is_visible" for WC_Product_Variable that
  looks at the supplied filters, compares them against the corresponding
  available variations and calculates the visibility based on
  the query type (OR or AND).

- A hook on the "found_posts" filter in WC_Query, that adjusts
  the posts count based on the found products visibility
  when there are filters available; this is needed to sync the
  "displaying X posts" messages and the paging when variable
  products are hidden due to stock status.

Additionally, the visibility calculated in "found_posts" is cached
as loop variables so that it isn't calculated again when actually
displaying the products.
2020-07-28 08:55:52 +02:00
.github Merge pull request #26315 from woocommerce/add/nightly-builds-workflow 2020-07-01 14:38:01 -03:00
.wordpress-org Update screenshots 2019-04-24 12:27:53 -03:00
assets Merge pull request #26945 from woocommerce/fix/25233 2020-07-27 11:35:13 -03:00
bin Add message to GUI clients. 2020-07-14 12:53:22 +02:00
i18n Merge pull request #26894 from imwatsi/patch-1 2020-07-01 15:10:50 -03:00
includes Fix visibility of variable products with layered nav filtering. 2020-07-28 08:55:52 +02:00
packages Add note on unit tests 2019-06-26 15:17:52 +01:00
sample-data Update shopmanager display name 2019-01-16 16:01:39 +02:00
src Added JETPACK_AUTOLOAD_DEV flag to autoloader 2020-07-27 09:40:55 +02:00
templates Fix visibility of variable products with layered nav filtering. 2020-07-28 08:55:52 +02:00
tests Fix visibility of variable products with layered nav filtering. 2020-07-28 08:55:52 +02:00
.codeclimate.yml Remove references to apigen from configuration files 2019-06-28 10:20:30 -03:00
.codecov.yml Disable Codecov checks for each PR 2020-01-22 16:17:45 -03:00
.distignore Fixed paths in distignore 2020-06-02 19:44:35 -03:00
.editorconfig HTTPS for everybody 2016-05-26 22:48:49 -03:00
.eslintignore Ignore vendor files 2018-11-06 15:31:12 -05:00
.eslintrc.js change component name to e2e-environment 2020-04-30 14:01:42 -03:00
.gitattributes Merge pull request #25159 from woocommerce/ignore-bin 2019-12-03 15:30:01 -03:00
.gitignore Merge branch 'master' into add/npm-publish 2020-06-22 13:46:54 -03:00
.scrutinizer.yml Remove references to apigen from configuration files 2019-06-28 10:20:30 -03:00
.stylelintrc Updated .stylelintrc config 2018-11-19 19:08:08 -02:00
.travis.yml Merge pull request #26483 from szepeviktor/patch-1 2020-07-01 13:20:35 -03:00
CHANGELOG.txt Update versions and changelog from latest releases. 2020-07-09 13:18:51 +02:00
CODE_OF_CONDUCT.md Fixed a typo 2017-06-19 16:22:40 -03:00
Dockerfile Update wordpress Docker tag to v5.4.2 2020-06-23 12:40:48 +00:00
Gruntfile.js Removed the old way to run e2e tests. 2020-05-11 11:02:08 +02:00
README.md Proposed updated link to WooCommerce documentation 2020-05-11 07:13:46 +01:00
babel.config.js change component name to e2e-environment 2020-04-30 14:01:42 -03:00
composer.json Updated the REST API to 1.0.11 2020-07-27 09:40:55 +02:00
composer.lock Updated composer lock file 2020-07-27 09:40:55 +02:00
docker-compose.yaml use version of docker supported by trusty and newer 2020-05-11 22:58:45 -03:00
lerna.json add lerna 2020-05-08 13:53:39 -03:00
license.txt update license/readme URLs to HTTPS where appropriate 2019-05-16 09:32:06 -03:00
package-lock.json Merge pull request #26914 from woocommerce/renovate/lerna-monorepo 2020-07-14 13:05:47 +02:00
package.json Merge pull request #26914 from woocommerce/renovate/lerna-monorepo 2020-07-14 13:05:47 +02:00
phpcs.xml Changes in the overall organization of the dependency injection: 2020-07-24 09:23:01 +02:00
phpunit.xml Added dependency injection infrastructure for unit tests: 2020-07-24 09:23:05 +02:00
readme.txt Update versions and changelog from latest releases. 2020-07-09 13:18:51 +02:00
renovate.json Marked all of the feature plugin packages as ignored in the renovate config 2020-05-27 13:49:54 -07:00
uninstall.php Restored original behaviour of the constant. 2020-02-06 13:39:46 +01:00
webpack.config.js change component name to e2e-environment 2020-04-30 14:01:42 -03:00
woocommerce.php Some changes on the dependency injection engine based on feedback: 2020-07-24 09:23:05 +02:00

README.md

WooCommerce

license Latest Stable Version WordPress.org downloads WordPress.org rating Build Status Scrutinizer Code Quality codecov

Welcome to the WooCommerce repository on GitHub. Here you can browse the source, look at open issues and keep track of development. We recommend all developers to follow the WooCommerce development blog to stay up to date about everything happening in the project. You can also follow @DevelopWC on Twitter for the latest development updates.

If you are not a developer, please use the WooCommerce plugin page on WordPress.org.

Documentation

Reporting Security Issues

To disclose a security issue to our team, please submit a report via HackerOne here.

Support

This repository is not suitable for support. Please don't use our issue tracker for support requests, but for core WooCommerce issues only. Support can take place through the appropriate channels:

Support requests in issues on this repository will be closed on sight.

Contributing to WooCommerce

If you have a patch or have stumbled upon an issue with WooCommerce core, you can contribute this back to the code. Please read our contributor guidelines for more information how you can do this.