* Make categories endpoint return zero-value items
* Rename PHP variable to make it more specific
* Remove uneeded lines
* Remove second parameter from get_ids_table
* Use menu_order to lower the claim priority of WC Admin scheduled actions.
* Use a ActionScheduler_Store subclass to modify menu_order.
* Check to make sure we’re overriding only AS’s built in WP Post data store.
* Make products endpoint return zero-value items
* Make rates endpoint return zero-value items
* Several fixes
* Add tests
* Simplify code
* Merge both queries into one to simplify code
* Rename 'get_outer_from_sql_params' to 'get_from_sql_params'
* Add button input type to analytics settings
* Add callback prop and disabled state to setting
* Add rebuild tool to settings page
* Re-enable setting if error is caught
* Remove rebuild tool from system tools page
* Move report build success message to API response
* Add back key for settings map
* Fix misspelled option group classname
* Conditionally add rebuild tool to non-wc-status page instead of removal hook
* Display order number on reports, and add to API response.
* Add method for getting order number, avoiding loading the data store if no filter is attached.
* Add post_title__like param to wp query
* Add product_name filter option to products rest controller
* Change autocomplete search to use product_name param
* Change add_wp_query_post_title_filter to static method
* Only add wp_query filter in the products rest controller
* Add code to collection params to allow searching
* Add include param to tax rest api
* Remove duplicate get_collection_params
* Revert to previous taxes getLabel config
* Add in hook to rest tax controller modify tax items query
* Modify query string for getting tax code items
* Add code to collection params to allow searching
* Change filter to use entire tax code without null values
* Hook up tax code filter to autocomplete search
* Overwrite get_items instead of using hooks for code filtering
* Fix indendtation for table creations
* Refactor how customers are created on order update
* Check if user has a role of customer or previous orders before storing
* Add tests for user creation
* Allow null emails for customers
* Only select customer_id in guest ID query
* Execute all pending jobs when debug mode is enabled
* Only process single order jobs immediately
* Replace wp_debug condition with a filter
* Bypass scheduling and process the order on save_post
* Change hook name to include order
* Only show customer name if available
* Map customer data to extended_info in orders API response
* Add gross total and refund total to orders API response
* Hook up report orders endpoint to activity panel orders
* Add on-hold orders to activity panel orders
* Destructure extended_info in case of filtering
* Add customer link to orders panel
* Add the ability to search name, username, and email fields on the customer endpoint, update autocompletors, add in include parameter.
* Update the username to be returned in the download response, update download filtering based on customer id, and only rename include parameter on main customers endpoint.
* Add item and shipping refund calucations to taxes on order update
* Sync taxes on refund delete
* Fix up tax stats API testing
* Add refunds to tax stats API tests
* Excluded statuses from customers oldest orders
* Fix tests for returning customer where excluded statuses are used
* Remove save_post hook used for testing
* Extract conditions for first order swapping
* Add get_oldest_orders function to customer data store
* Check if is first order in is_returning_customer()
* Check if the customers first order has changed and update all orders respectively
* Fix check for empty oldest_orders array
* Change avg_items_per_order to number instead of integer
* Fix failing tests for new/returning customers
Only the first orders with product 1 and without coupons should be new per each customer
* Remove sleep functions from tests
* Assign second order to a variable for legibility
* Fix second order assignment and check if set
Fixes the follow PHP error:
```
PHP Fatal error: Uncaught ArgumentCountError: Too few arguments to function WC_Admin_Reports_Data_Store::remove_extra_records(), 6 passed in wp-content/plugins/wc-admin/includes/data-stores/class-wc-admin-reports-taxes-stats-data-store.php on line 232
```
* Add manage_stock to stock controller response
* Add manage_stock property to stock report tests
* Add changelog entry
* Make stock quantity float instead of int
* Add manage_stock to the products API response
* Check for manage_stock in products table
* Add manage_stock property to product API tests
Product detail report and comparison
Code cleanup
Fix 404 on product variations endpoint after rebase
Fix up tests
Fix loading indicators and add some checks around malformed variation response
Add date filtering SQL bits to the variations query
Handle PR feedback: Fix viewport, fix duplicate product issue, fix legend display reset, fix bargraph overflow, fix some coding standards/whitespace, add extra variation santiziation.
Fix scroll on wide charts, and fix undefined prop getting passed into report chart render
* Add settings page routes
* Add control options for excluded statuses
* Add control options for excluded statuses
* Add excluded order statuses to rest api
* Add wc settings to wc-api
* Add wc settings to wc-api
* Split and validate multiselect values in settings controller
* Add wcAdminSettings to wcSettings global
* Set initial excluded statuses from serverside wcSettings data
* Add extensible filter for wcSettings global
* Split arrays into comma separated strings in wc-api
* Extract setting as separate component
* Extra settings to config file
* Add checkboxGroup option as input type
* Separate status types into default and custom groups
* Add setting option styling
* Add responsive styling for settings
* Fix wpClosedMenu and wpOpenMenu for settings page
* Add support for resetting to default values
* Only show checkbox group if options are available
* Add proptypes to Setting component
* Add extensible filter to analytics settings
* Add readme for settings config and extensibility
* Hook up excluded status settings to reports
* Pass object to settings API instead of comma delimited string
* Fix inpuType -> inputType typo
* Remove hasError from constructor
* Bump settings API to v4
* Use interpolateComponents instead of dangerously setting html
* Use empty array in initial excldued statuses setting value if none is retrieved
* Remove double check for refunded status in default order statuses
* Update settings wc-api to use namespace
* Add aria=labelledby to checkbox group
* Add namespace v4 for WC product/categories endpoint
* Update categories wc-api to use v4 namespace constant
* Add single product category filter to product categories report
* Add link to filtered product report from category report
* Use persistedQuery for category links
* Check if category is defined before displaying category link
* Remove selectedTags when filter does not match queried filter
* REST API: Allow sorting by stock_status in stocks endpoint
* Set stock_status as default orderby
* Sort by both stock status and quantity in meta query
* Use stock_status sort order by default in Stock table (https://github.com/woocommerce/woocommerce-admin/pull/1340)
* Reverse stock quantity order when sorting by stock status
* Add label and generated report URL to the performance indicator response.
* Hook up performance indicators to the REST API
* Handle PR feedback
* Fix setting default values
* Update all wc-admin endpoints to v4
* Add namespace for products and customers controllers
* Include product quantity in orders data store
* Add coupons to extended data in the orders data store
* Format order statuses response from database
* Hook up orders table to orders endpoint
* Add namespace to data endpoint controller
* Add namespaces to remaining extended controllers
* Use NAMESPACE var in place of wc/v4
* Update product links in orders table to products reports
* Add coupons rest controller override
* Format coupon code in response
Co-Authored-By: joshuatf <joshuatf@gmail.com>
* Change check for returning customers to check customer_id
* Count distinct returning and new customers in totals
* Fix priority action misplacement and order date timestamp
* Change expected num returning/new customers to fix failing tests
Previously these included references to number of returning vs new orders. Update to refer to the newly updated customer count.
* Use new get_customer_id_by_user_id() to get customer ID
* Fix 0 returning customers expectation
* Move returning customer function to order stats data store
* Sync order stats on order delete
* Change date compare for is_returning_customer
* Add test case for returning customer order
* Add references to instead of 2
* Store all orders regardless of status in wc_order_stats
* Only query select statuses if status_is or status_is_not is not set
* Fix order stats example query
* Filter category store by default order statuses
* Add table_name to interval functions to avoid ambiguity
* Filter coupon store by default order statuses
* Fix interval stats by adding table_name to interval function
* Filter products store by default order statuses
* Remove unused order_status in coupons data store
* Store products with any order status
* Fix ambiguous order by call in products data store
* Apply status filter after other filters to avoid logical OR matching
* Store all coupon data regardless of order status
* Filter taxes by default order statuses
* Filter customer stats by default order status
* Filter default order statuses in variations data store
* Use excluded statuses to filter reports by default
* DRY up default excluded statuses query
* Fix up new orders data store after rebase
* Rename orders controllers and data store to order stats
* Add orders data store and controller
* Add coupon, product, and status filters
* Add customer type query filter
* Add extended info for products and categories
* Bump API namespace to v4
* Add missing schema properties
* Set default customer_type and extended_info params
* Add orders endpoint tests
* Only use one JOIN if both excluded and included queries are used
* Optimize query calls to get product and category data
* Split product and category fetch and limit to product_cat taxonomy