Co-authored-by: David Stone <david@nnucomputerwhiz.com>
Co-authored-by: Chris Shultz <chris.shultz@automattic.com>
Co-authored-by: Harris Wong <harris.wong@a8c.com>
* Abstract WP plugin code into a PluginsHelper class
We plan to use these methods in the Marketing tab.
* Add PluginsHelper::is_plugin_active()
* Add PluginsHelper::is_plugin_installed()
* Add PluginsHelper::get_plugin_data()
* Add PluginsHelper::get_plugin_path_from_slug()
* Refactor PluginsHelper::get_plugin_data method
Using the new get_plugin_path_from_slug method
* Refactor is_plugin_installed and is_plugin_active
Also adds support for plugin slugs or paths as parameters.
* Ensure get_plugins() function is available for PluginsHelper
* Ensure plugin path is a string before checking if installed/active
* PHPCS fixes
* Add initial unit tests for PluginsHelper
* Check plugin data array keys rather than all values
Will make it less fragile when Woo plugin data changes
* Fix typos
Co-authored-by: Daniel Bitzer <danielbitzer@gmail.com>
Before 0.10.0 notes had a default content_data of array(). If stored in the database, these notes would be unable to be loaded. This adds some resiliency to the loading so that invalid content_data fields don't break WC_Admin_Note::set_content_data().
Co-authored-by: Christopher Allford <christopher.allford@automattic.com>
* remove replace_actionscheduler_store_class function from master
* remove AS store class file
* reuse variable
* Fix test helper queue action cancellation for AS 2.x.x.
* Remove WPPostStore logic from SchedulerTraits.
* Remove dead queue code from WC_Admin_Notes.
Missed in https://github.com/woocommerce/woocommerce-admin/pull/3662.
Co-authored-by: Paul Sealock <psealock@gmail.com>
Co-authored-by: Jeff Stieler <jeff.m.stieler@gmail.com>
* Manually call on_plugins_loaded after loading plugins for testing
* Update import tests to cancel all pending actions in new AS tables
* Fix deprecated next method in AS
* Remove priority queue test for unused priority in AS 3.0
* Check only for pending status actions in batch queue tests
* Add cancel_actions_by_group method to WPPostStore
* Add method to check for next blocking job time
* Force delete scheduled actions on older versions of AS
* Modified question in the business step of the onboarding
* Added more options in the competitors list
Onboarding - Business step -> Add more options in the competitors list.
* Added an option input field to Onboarding, business step
To the Onboarding's business step added an input field when the user selects "Other".
* Added suggested improvements
* Added new param to "test_schema" test
Co-authored-by: Fernando Marichal <contacto@fernandomarichal.com>
* align code styles with the same configuration as Woo-Blocks
* initial pass of reformat-files
* applies manual fixes to various new linting errors surfaced by the configuration change.
* Fix state mutation in image-upload
* remove unused pre-commit-hook.js
* requestAnimationFrame -> window.requestAnimationFrame
* wc-api eslint changes
* eslint fixes on client/lib and client/settings
* client/header eslint changes
* fixes for client/dashboard part 1
* fixes client/dashboard part 2 of 2
* client/analytics part 1
* client/analytics continued
* client/analytics, last batch
* rename __mock__ directory
* pass in useEffect, useState from React component or function
* remove '+' from sprintf string argument
* use ref instead of findDOMNode
* reformat and repaply package.json changes
* install deps before running linter in Travis
* useGetCountryStateAutofill
* counryStateAutofill
* countryStateAutofill
Co-authored-by: Paul Sealock <psealock@gmail.com>
* Add API endpoint to install themes
* Add API endpoint to activate a theme
* Add an array of allowed themes and sanitize slugs
* Limit allowed themes to already installed or free themes
* Add theme installation tests
* Add tests for theme activation
* Add onboarding theme installation and activation tests
* Remove unused argument in onboarding plugins API
* Add filter to conditionally disable report caching.
* Disable caching for Orders Stats unit tests.
Fixes the display of the last query when tests fail.
* Relabel Net Revenue to Net Sales, revert previous refund work on Gross revenue and rename to total sales. Update the orer of all the things
* Add gross sales calculation to revenue stats endpoint.
* Restore coupon_total when updating order stats.
* Wire up gross sales to revenue report.
* Fix revenue report refunds calculation when there are no refunds.
* update net sales labels and cases in order, product and category tables
* Subtract refunded shipping and taxes from gross sales.
* pluses to minuses to fix the gross revenue and refund totals when refunding
* Add gross_sales to revenue stats orderby enum.
* Change refund labels to Returns
* Remove usage of defunct coupon_total column.
* Store refunded amount in stats table.
* Rename "gross_total" column to "total_sales".
* Net total for refund orders can be used instead of a new column.
* Rename gross_revenue to total_sales.
* Coalesce coupons total in order stats query.
SUM()ing all nulls gives null, not zero.
* Use segmentation selections to backfill missing data.
Fo when report columns and segmentation columns don't match.
* Remove errant gross_sales from expected interval test data.
* Fix gross sales tests for revenue/stats.
* Move missing segment fills back to their original locations.
* Fix remaining tests failing because of gross sales.
* Fix db upgrade function rename of gross_total column.
* Fix linter errors.
* 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
* Add "exportable" report interface for defining CSV export values.
* Define export values for Orders Report.
* Define export values for Products Report.
* Define export values for Categories Report.
* Define export values for Coupons Report.
* Allow commas and double quotes in CSV exported values.
* Fix in-browser export formatting of orders report products.
* Align server-side orders report export formatting with in-browser.
* Cover comma and double quote escaping in CSV export package tests.
* Define export values for Customers Report.
* Embed response links when requesting data for CSV exports.
* Define export values for Downloads Report.
* Move reusable report export functions to a trait.
* Define export values for Stock Report.
* Define export values for Taxes Report.
* Define export values for Variations Report.
* Define export values for Revenue Report.
* Always pass export row data through the filter.
* Fix formatting in test case for CSV coupon export.
* Quote escape CSV headers in client-side export.
Escape values with spaces as well.
* Check if inventory is managed at the product level before using the stock status/quantity.
* Prevent CSV injection in csv-export package.
* Look table class and installer
* New table + stats
* Working reports/initial population
* Remove test
* Refactor, remove depth
* Unused table
* Update todo
* Add docblocks and reorder get_insert_sql params for consistency
* Adjust css braces
* clear hook on deactivation
* PSR-4 category lookup
* linting CSS closing brace last char on line
* initialize category lookup table in unit tests
* missed linting fixes
* revert move of run_all_pending call
* use consistent reference for term_relationships in queries
* Fix vendor scripts and test bootstrapping
* Escape the downloaded file URL in tests
* Generate feature config file for tests
* Run feature config generation before and after script tests
* integrate with new asset data registration (php side)
- includes back-compatibility.
* update js configuration and implement settings alias
- this aliases `@woocommerce/wc-admin-settings` to the settings api exposed via blocks (either the blocks plugin or core) and all the settings provided via the server.
- Adds fallback for back-compat if `wc.wcSettings` is not available in the environment (fallsback to `wcSettings`).
* initial pass to update all wcSettings direct usage to the new api
- this is just an initial pass, more can be done in separate pulls.
* missed one spot for adding new filter implementation
* fix incorrect jest config
* Avoid unnecessary assignment and directly return.
* Remove unnecessary defaults
* Fix inline comment text case.
Co-Authored-By: Albert Juhé Lluveras <contact@albertjuhe.com>
* Remove unnecessary inline comment.
* use @todo instead of TODO
Co-Authored-By: Albert Juhé Lluveras <contact@albertjuhe.com>
* fix incorrect reference in webpack config.
* add missing import and slightly delay dependency injection for scripts
* update get-setting and set-setting callbacks
* disable lint rule for console.error on dev doc builds
* Add theme upload REST api controller
* Add theme data to theme controller response
* Add tests for themes api
* Change user cap check to upload_themes
* Add test for users without theme capabilities
* Add business extension recommendations
* Fix failing test. Set max height and width for toggle
* Fix toggle display and fix when the extensions show (so they dont hide and disapear as "currently" selling is selected).
* Return early from creating customer if order is false
* Refactor customer first and last name methods
* Separate customer name tests to create guest orders
* Check for parent_id before retrieving customer ID in refund
* Use registered customer ID in import report tests
* Compare absolute integer when checking for valid customer ID
* Check for order before getting customer ID when retrieving existing customer ID
* Hook up import/status endpoint to Historical Data Import screen
* Fix PHP tests
* Add speak message when the import is complete
* Several fixes
* Cleanup
* Update progress bars every 3 seconds and bugfixes
* Rename ongoingImport to activeImport
* Use timestamp to identify queries
* Use timestamps for historical data state
* Add 'initializing' status
* Cleanup
* Pass less props around
* Refactor getStatus
* Set stop timestamp on request error
* Typo
* Add profiler body class on initial load, and respect skipped/complete status.
* Handle PR feedback: Remove unnecessary global, add some todos, added a filter around the next step slug, generalized the is-loading class a bit.
* Add method to go to next profiler step in step controller
* Add method to update profile params in step controller
* Add action methods to step 1 in the profiler
* Allow JSON body params for profile controller
* Use JSON body params in onboarding profile tests
* Update import progress during batches
* Add import status route for querying import progress
* Update import totals before import start
* Move wc admin notes to separate action scheduler group
* Add import totals route to query customer and order totals
* Add wc helper queue job processing method
* Add import status and total tests
* Separate action type clearing for imports and notes
* Typecast action types as array in clear_pending_wcadmin_actions()
* Add customer functions to order and refund classes
* Extract shared order and refund methods to trait
* Add refund filter to advanced filters in orders report
* Filter refund types in orders data store
* Extract refunds subquery to parent report data store method
* Add refund subquery filtering to order stats data store
* Add tests around refund type filtering
* Change the default option for the refunds filter
* Sync refunds on order sync
* Separate order and refund class extensions
* Add customer functions to order and refund classes
* Change products store to work with refund amounts
* Return early for refunds in coupon data store
* Allow refund processing in tax data store
* Remove unused refund amounts from tables and data stores
* Change order counts to parse out refund entries
* Include refunded orders in default queried statuses
* Only process order number filter on shop order post types
* Extract shared order and refund methods to trait
* Fix renamed schedule_single_order_import method
* Bump PHP and WP version requirements