woocommerce/plugins/woocommerce-blocks
Mike Jolley d613d2fde6 Active filters block (https://github.com/woocommerce/woocommerce-blocks/pull/1168)
* Basic block construction

* Register on PHP side

* wc-active-filters script

* Price utils

* Refactor price slider so state reflects the query

Moves some logic from the component to the block so that min and max price can change (via query) and be reflected by the price sliders.

This allows the active filters block to change the query and have those new values reflected by the slider.

* Fix type checking of numbers

* Styles for filter block

* Improved attribute helper for getting attribute taxonomy data from ID/taxonomy

* Refactor attribute filter to use updateAttributeFilter helper

* Disable checkboxes when loading to avoid multiple queries

* Add todos - this is blocked

* Remove checked state from Attribute Filter so it gets updated from the store (https://github.com/woocommerce/woocommerce-blocks/pull/1170)

* isLoading check

* active price filtering rendering

* Block heading

* Implement block options; chip display with clear button

* Clear all should remove all attributes

* Enable previews

* Introduce a component to look up terms from slugs using collections (which are cached)

* Correct all docblocks

* activePriceFilters null return

* renderRemovableListItem

* Remove useMemo for hasFilters

* Switch classnames notation

* Ensure slug is array in removeAttributeFilterBySlug

* null -> undefined return types for attributes

* Remove fragment

* Check we have a termObject in ActiveAttributeFilters

* Refactor formatPriceRange return statements

* Ensure query array index will exist

* Only sort when adding a query

* Remove aria-label with dupe text

* hasFilters is function

* Update useQueryStateByKey usage

* More doc block fixes

* Update getAttributeFromTaxonomy return and docblock

* getAttributeFromID return/docblock
2019-11-15 14:41:23 +00:00
..
.github Create issue_label_bot.yaml 2019-07-09 10:36:17 +01:00
.sources New block: Filter Products by Price (https://github.com/woocommerce/woocommerce-blocks/pull/853) 2019-11-01 13:56:14 +00:00
assets Active filters block (https://github.com/woocommerce/woocommerce-blocks/pull/1168) 2019-11-15 14:41:23 +00:00
bin Active filters block (https://github.com/woocommerce/woocommerce-blocks/pull/1168) 2019-11-15 14:41:23 +00:00
languages Build: Add translation conversion script (https://github.com/woocommerce/woocommerce-blocks/pull/486) 2019-03-13 09:59:12 -04:00
src Active filters block (https://github.com/woocommerce/woocommerce-blocks/pull/1168) 2019-11-15 14:41:23 +00:00
tests Fix Package::init breakage for including plugin in WC core (https://github.com/woocommerce/woocommerce-blocks/pull/1175) 2019-11-14 12:19:22 -05:00
.editorconfig Introduce legacy build system and new aliases (https://github.com/woocommerce/woocommerce-blocks/pull/1018) 2019-10-06 08:36:15 -04:00
.eslintignore Install prettier and reformat files (https://github.com/woocommerce/woocommerce-blocks/pull/945) 2019-09-05 17:09:31 +02:00
.eslintrc.js Update dependencies order (https://github.com/woocommerce/woocommerce-blocks/pull/1146) 2019-11-08 17:30:11 +01:00
.gitattributes Create CODEOWNERS file (https://github.com/woocommerce/woocommerce-blocks/pull/1013) 2019-10-02 19:08:05 +02:00
.gitignore Add `package-plugin` script (https://github.com/woocommerce/woocommerce-blocks/pull/689) 2019-07-09 12:37:25 +01:00
.nvmrc Adds continuous integration testing with travis (https://github.com/woocommerce/woocommerce-blocks/pull/156) 2018-11-27 12:12:48 -05:00
.prettierrc Fix increment bug in withComponentId (https://github.com/woocommerce/woocommerce-blocks/pull/951) 2019-09-07 08:04:34 -04:00
.stylelintrc.json Add stylelint to find and fix css code style issues (https://github.com/woocommerce/woocommerce-blocks/pull/126) 2018-11-15 10:45:49 -05:00
.travis.yml Refresh package-lock.json due to node lts version bump (https://github.com/woocommerce/woocommerce-blocks/pull/1058) 2019-10-21 16:26:53 +01:00
CODEOWNERS Create CODEOWNERS file (https://github.com/woocommerce/woocommerce-blocks/pull/1013) 2019-10-02 19:08:05 +02:00
CONTRIBUTING.md Update NPM package docs after deprecation (https://github.com/woocommerce/woocommerce-blocks/pull/1045) 2019-10-16 11:12:24 +02:00
README.md add composer install to readme (https://github.com/woocommerce/woocommerce-blocks/pull/738) 2019-07-17 11:06:06 +12:00
bundlesize.config.json Install prettier and reformat files (https://github.com/woocommerce/woocommerce-blocks/pull/945) 2019-09-05 17:09:31 +02:00
composer.json Update dependency automattic/jetpack-autoloader to v1.3.2 (https://github.com/woocommerce/woocommerce-blocks/pull/990) 2019-09-25 12:25:37 +02:00
composer.lock New block: Filter Products by Price (https://github.com/woocommerce/woocommerce-blocks/pull/853) 2019-11-01 13:56:14 +00:00
package-lock.json Active filters block (https://github.com/woocommerce/woocommerce-blocks/pull/1168) 2019-11-15 14:41:23 +00:00
package.json Active filters block (https://github.com/woocommerce/woocommerce-blocks/pull/1168) 2019-11-15 14:41:23 +00:00
phpcs.xml All Products with Inner Blocks (https://github.com/woocommerce/woocommerce-blocks/pull/1032) 2019-10-28 09:53:09 -04:00
phpunit.xml.dist Move main controllers from assets/php to src (https://github.com/woocommerce/woocommerce-blocks/pull/655) 2019-07-01 13:52:44 +01:00
postcss.config.js Create Reviews by Product block (https://github.com/woocommerce/woocommerce-blocks/pull/658) 2019-08-15 16:55:57 +02:00
readme.txt Update version to 2.4.1 and changelog 2019-09-02 15:20:41 +02:00
renovate.json Lock file maintenance (https://github.com/woocommerce/woocommerce-blocks/pull/1023) 2019-10-07 11:05:35 +01:00
webpack.config.js Active filters block (https://github.com/woocommerce/woocommerce-blocks/pull/1168) 2019-11-15 14:41:23 +00:00
woocommerce-gutenberg-products-block.php Show notices when WP or PHP versions are not met (https://github.com/woocommerce/woocommerce-blocks/pull/1160) 2019-11-15 13:33:43 +01:00

README.md

WooCommerce Product Blocks

Feature plugin for WooCommerce + Gutenberg. Now that the product blocks have been merged into WooCommerce 3.6, this plugin serves as a space to iterate and explore how else WooCommerce might work with the block editor.

If you're just looking to use these blocks, update to WooCommerce 3.6! The blocks are bundled into WooCommerce, and can be added from the "WooCommerce" section in the block inserter.

If you want to see what we're working on for future versions, or want to help out, read on.

Table of Contents

Installing the stable version

We release a new version of WooCommerce Blocks onto WordPress.org every few weeks, which can be used as an easier way to preview the features.

  1. Make sure you have WordPress 5.0+ and WooCommerce 3.6+
  2. The stable version is available on WordPress.org. Download the stable version here.
  3. Activate the plugin.

Installing the development version

  1. Make sure you have WordPress 5.0+ and WooCommerce 3.6+
  2. Get a copy of this plugin using the green "Clone or download" button on the right.
  3. npm install to install the dependencies.
  4. composer install to install core dependencies.
  5. npm run build (build once) or npm start (keep watching for changes) to compile the code.
  6. Activate the plugin.

The source code is in the assets/ folder and the compiled code is built into build/.

Getting started with block development

Run through the "Writing Your First Block Type" tutorial for a quick course in block-building.

For deeper dive, try looking at the core blocks code, or see what components are available.

Other useful docs to explore:

Vision for the Feature

Users should be able to insert a variety of products from their store (specific products, products in a category, with assorted layouts and visual styles, etc.) into their post content using a simple and powerful visual editor.