woocommerce/plugins/woocommerce-admin
Ron Rennick afed4fba36 Data store refactor (https://github.com/woocommerce/woocommerce-admin/pull/2961)
* Base Report data store utility functions - 1

Standardizing the data store classes will be easier if the base class contains simple utility functions
that can replace logic implemented in multiple data stores.

- set_db_table_name() assigns a WP DB table name class variable for the data store
- get_db_table_name() retrieves the WP DB table name
- prepend_table_name() prepends a field in a query fragment with the data store table name

* add context, clause handling, and filters to reports data store

* add generated SQL clauses to class properties

* reduce id getter logic to single function with filter, add phpdocs to new filters

* update table_name to private string for use in constructor

* extract SQL query clause handling to its own class

- Will allow for use in subquery processing without creating a get_data stub
- Swap parameter order in add_sql_clause for readability
- Add support for clearing multple clauses in one call

* add context var to SqlQuery class

* implement SqlQuery in Categories data store

* implement subquery in categories data store

* coupons data stores, more underlying refactor

- fix warnings
- make filtered id functions static
- add limit parameter handling
- update coupons data store
- update coupon stats data store

* refactor coupon stats data store

* refactor customers and customer stats data stores

* add context to subqueries

* add missed prepend table name call

* refactor downloads data store, fix some warnings

* fix warnings, add separator parameter to filtered IDs

* refactor taxes and tax stats data stores

* refactor variations data store

* refactor product and product stats data stores

* make table_name static throughout for compat with static hook functions

* refactor order and order stats datastores

- use consistent visibility on initialize_queries()
- update db_table_name logic to use static keyword instead of self

* fix missed whitespace

* fix segmenting query, add SqlQuery join clause

* DRY data store constructors, class properties

* prefix table name when not yet assigned

* fix unit tests, interpolations, WPDB delete calls

* DRY get_object_where_filter()

* remove redundant table prefix from unit test init

* fix refactored SQL queries

* restore product paging

* remove unused query param arrays

* add first pass on data docs readme

* remove debug code, errant SQL spacing

* refactor out outer_from query element

* merge wheres, joins before filtering

* move all report column definitions to assign_report_columns

* fix data readme markdown

* small code formating fixes from review

* remove static from query/datastore context

* missed self:: in previous, add comments, small code moves

* rename get_statement() to get_query_statement()

* remove temporary query references

* static reference, remove reference parameter, fix coupon compare

* add todo reminders

* use correct query parameter in coupon data stores
2019-11-07 10:28:37 -07:00
..
.github Changelog: Use author's note, if supplied 2019-06-18 22:11:58 +12:00
bin Use getenv in place of $_ENV (https://github.com/woocommerce/woocommerce-admin/pull/3077) 2019-10-23 07:56:22 +08:00
client Show "add a product" notice to stores without published products (https://github.com/woocommerce/woocommerce-admin/pull/3119) 2019-11-07 09:00:38 -07:00
config Feature flags: Enable customizable dash on plugin 2019-05-15 12:05:10 +12:00
docs Data store refactor (https://github.com/woocommerce/woocommerce-admin/pull/2961) 2019-11-07 10:28:37 -07:00
images Add images to homepage template and a new layout for sites with more than 4 products (https://github.com/woocommerce/woocommerce-admin/pull/3140) 2019-11-01 08:49:04 -04:00
includes Fix vendor scripts not loading (https://github.com/woocommerce/woocommerce-admin/pull/3172) 2019-11-06 08:24:41 +08:00
languages Add instructions for translating to contributing docs. 2019-07-09 10:12:34 -06:00
packages Onboarding: Allow users to navigate backwards in steps (https://github.com/woocommerce/woocommerce-admin/pull/3154) 2019-11-06 08:26:08 +08:00
src Data store refactor (https://github.com/woocommerce/woocommerce-admin/pull/2961) 2019-11-07 10:28:37 -07:00
tests Data store refactor (https://github.com/woocommerce/woocommerce-admin/pull/2961) 2019-11-07 10:28:37 -07:00
.browserslistrc Add CSS autoprefixer (https://github.com/woocommerce/woocommerce-admin/pull/244) 2018-07-30 10:05:22 -04:00
.distignore Add Feature Flags (https://github.com/woocommerce/woocommerce-admin/pull/1500) 2019-02-12 15:02:02 -05:00
.editorconfig Initial commit of plugin scaffold 2018-04-17 17:04:17 -04:00
.eslintignore Docs Project: Add documentation parser + inline documentation (https://github.com/woocommerce/woocommerce-admin/pull/336) 2018-08-31 13:27:21 -04:00
.eslintrc Set eslint react version to 'detect' (https://github.com/woocommerce/woocommerce-admin/pull/1300) 2019-01-17 10:25:08 +01:00
.gitignore WC_Admin_Loader/PHP Refactor + Method to publish core ready features (https://github.com/woocommerce/woocommerce-admin/pull/1863) 2019-04-11 14:31:31 -04:00
.nvmrc Add nvmrc for newest lts release (https://github.com/woocommerce/woocommerce-admin/pull/1108) 2018-12-18 16:06:27 -06:00
.stylelintrc.json Makes stylelint config match prettier settings (https://github.com/woocommerce/woocommerce-admin/pull/733) 2018-11-01 17:03:00 -04:00
.travis.yml Copy component READMEs to docs folder before GH page deploy. (https://github.com/woocommerce/woocommerce-admin/pull/2952) 2019-09-25 09:37:05 -07:00
CONTRIBUTING.md update README.md and CONTRIBUTING.md (https://github.com/woocommerce/woocommerce-admin/pull/2963) 2019-09-26 07:35:54 -04:00
Gruntfile.js Update text domain. (https://github.com/woocommerce/woocommerce-admin/pull/1795) 2019-03-13 11:14:02 -06:00
LICENSE.md update to consistent license 2019-05-16 13:14:03 -03:00
README.md update README.md and CONTRIBUTING.md (https://github.com/woocommerce/woocommerce-admin/pull/2963) 2019-09-26 07:35:54 -04:00
babel.config.js Update text domain. (https://github.com/woocommerce/woocommerce-admin/pull/1795) 2019-03-13 11:14:02 -06:00
composer.json Update order stats table status index length. (https://github.com/woocommerce/woocommerce-admin/pull/3022) 2019-10-10 13:54:44 -07:00
composer.lock Update dependency woocommerce/woocommerce-sniffs to v0.0.7 (https://github.com/woocommerce/woocommerce-admin/pull/2928) 2019-09-27 14:40:45 -04:00
lerna.json Try: Add Lerna to split out utility packages (https://github.com/woocommerce/woocommerce-admin/pull/678) 2018-10-30 14:57:48 -04:00
license.txt include license.txt and update component package.json files 2019-05-18 01:19:20 -03:00
package-lock.json Update dependency autoprefixer to v9.7.0 (https://github.com/woocommerce/woocommerce-admin/pull/3131) 2019-10-31 11:26:40 -03:00
package.json Update dependency autoprefixer to v9.7.0 (https://github.com/woocommerce/woocommerce-admin/pull/3131) 2019-10-31 11:26:40 -03:00
phpcs.xml.dist Catch notices earlier than priority 10 (https://github.com/woocommerce/woocommerce-admin/pull/2981) 2019-10-02 09:25:31 -04:00
phpunit.xml.dist Initial setup for unit tests. 2018-09-20 16:20:04 +02:00
postcss.config.js Update to Color Studio v2.1.0 (https://github.com/woocommerce/woocommerce-admin/pull/2837) 2019-08-29 12:07:56 -04:00
readme.txt update tested to version for WC and WP (https://github.com/woocommerce/woocommerce-admin/pull/3162) 2019-11-01 16:45:05 -03:00
renovate.json Change renovate to a once-weekly schedule (https://github.com/woocommerce/woocommerce-admin/pull/1076) 2018-12-13 12:20:36 -05:00
uninstall.php Remove defunct filename prefix from remaining files. 2019-08-12 15:06:36 -07:00
webpack.config.js Onboarding: Add return to task list after saving taxes (https://github.com/woocommerce/woocommerce-admin/pull/3170) 2019-11-07 08:17:46 +08:00
woocommerce-admin.php update tested to version for WC and WP (https://github.com/woocommerce/woocommerce-admin/pull/3162) 2019-11-01 16:45:05 -03:00

README.md

WooCommerce Admin

This is a feature plugin for a modern, javascript-driven WooCommerce Admin experience.


⚠️ This project is in active development, and is not ready for general use. You can follow the features in development by looking at the project's issues. We do not recommend running this on production sites.


Prerequisites

WordPress 5.2 or greater and WooCommerce 3.6.0 or greater should be installed prior to activating the WooCommerce Admin feature plugin.

For better debugging, it's also recommended you add define( 'SCRIPT_DEBUG', true ); to your wp-config. This will load the unminified version of all libraries, and specifically the development build of React.

Development

After cloning the repo, install dependencies:

  • npm install to install JavaScript dependencies.
  • composer install to gather PHP dependencies.

Now you can build the files using one of these commands:

  • npm run build : Build a production version
  • npm run dev : Build a development version
  • npm start : Build a development version, watch files for changes
  • npm run build:release : Build a WordPress plugin ZIP file (woocommerce-admin.zip will be created in the repository root)

For more helper scripts see here

For some debugging tools/help see here

Privacy

If you have enabled WooCommerce usage tracking ( option woocommerce_allow_tracking ) then, in addition to the tracking described in https://woocommerce.com/usage-tracking/, this plugin also sends information about the actions that site administrators perform to Automattic - see https://automattic.com/privacy/#information-we-collect-automatically for more information.

Contributing

There are many ways to contribute reporting bugs, adding translations, feature suggestions and fixing bugs. For full details, please see CONTRIBUTING.md