* Skip loading of webhooks if webhooks disabled
* Add changefile(s) from automation for the following project(s): woocommerce
* PHP CS fix.
---------
Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: Vedanshu Jain <vedanshu.jain.2012@gmail.com>
* replace pink with wc purple in reports page
* use wc purple in product rating in the dashboard widget
* Add changefile(s) from automation for the following project(s): woocommerce
* Add changefile(s) from automation for the following project(s): woocommerce
* use better contrast
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
* Show validation message in the field that lost the focus
* Add unique validation for custom field names and trim values
* Let edit custom fields when creating a new product
* Add changelog file
* Display channel column in Orders Analytics UI.
* Set $data to false to not use cache.
For development purpose.
* Get channel info from order meta and put into extended_info.
* Set channel in order item level.
* Replace channel with get_origin_label in extended_info.
* Remove unnneeded channel in orders_data.
* Display origin instead of channel in table.
* Fix lint errors.
* Query order meta table based on HPOS.
* Remove code for development purpose.
* Add changelog.
* Fix code comment.
* Guard against null values.
`_wc_order_attribution_utm_source` can be null when the order is created via web admin.
* Set default origin label to "Unknown".
This default is the same as found in `output_origin_column` function in plugins/woocommerce/src/Internal/Orders/OrderAttributionController.php.
* Support server side report download.
This is needed when there are more than 25 records in the Orders Analytics report.
* Fix failed test.
* Fix lint error.
* Simplify code.
We loop through $orders_data instead of $order_attributions data. This is because $order_attributions may not have attributions data for some orders.
By looping through $orders_data, it would automatically cater for "Unknown" data from get_origin_label function call, and we don't need to specify "Unknown" as default value for origin.
* Change "channel" to "attribution" object in controller.
This is because we need more than one piece of information, so we need it to be an object with properties like `origin`, `device` etc.
Co-authored-by: Kader Ibrahim S <kader.ibrahim.s@a8c.com>
* Change `origin` string to `attribution` array in Orders DataStore.
Co-authored-by: Kader Ibrahim S <kader.ibrahim.s@a8c.com>
* Change origin string to attribution object.
* Fix indexing after changing from origin string to attribution object.
* Change from origin string to attribution object in table.js.
* Simplify code.
To make code shorter and easier to read, instead of long horizontal code.
* Fix lint errors.
* Fix failed test.
* Fix lint error.
* Fix retrieving origin in CSV export.
* Use $wpdb->postmeta; cosmetic change.
Co-authored-by: Kader Ibrahim S <kader.ibrahim.s@a8c.com>
* Cosmetic change.
Co-authored-by: Kader Ibrahim S <kader.ibrahim.s@a8c.com>
* Sanitize order IDs by using absint.
Co-authored-by: Kader Ibrahim S <kader.ibrahim.s@a8c.com>
---------
Co-authored-by: Kader Ibrahim S <kader.ibrahim.s@a8c.com>
* add a failing test for order totals with HPOS enabled but sync disabled
* fix comment
* ensure the wc/v3/reports/orders/totals endpoint is compatible with HPOS
* add changelog file
* address linter issues
* Allow saving a product as a draft when hitting ctrl/cmd + S
* Increment logic to keep product published/scheduled after it is published when using shortcut
* Add a safety check for the numbers with the same value for the separators
This case breaks the library we are using for number formatting. This is not documented on their end and can't be fixed by passing a different configuration.
We are fixing it on our end by overwriting the thousand separator.
This change will only surface in the checkout blocks, at they are the only blocks doing formatting via React (the products blocks use php).
This will not apply to the order confirmation.
This change is preventing a fatal error thrown by the library and allowing users to see the content of the cart.
It's an edge case, because it happens only why people have the same values for the separators, which is an non-standard way to format.
* Add unit tests and changelog
* Add a safety check for the numbers with the same value for the separators
This case breaks the library we are using for number formatting. This is not documented on their end and can't be fixed by passing a different configuration.
We are fixing it on our end by overwriting the thousand separator.
This change will only surface in the checkout blocks, at they are the only blocks doing formatting via React (the products blocks use php).
This will not apply to the order confirmation.
This change is preventing a fatal error thrown by the library and allowing users to see the content of the cart.
It's an edge case, because it happens only why people have the same values for the separators, which is an non-standard way to format.
* Add unit tests and changelog
* Improve tests
* "Improve tests"
* add a CustomActionDispatchers for createProductAttribute action
* add optional options to createItem() fn
* update items object when optimisticQueryUpdate is defined
* reduce itemsCount when creating a new item
* polish TS types
* update reducer tests
* clean unused type
* clean dirty code
* add optimisticQueryUpdate test
* changelog
* minor improvement
* options could be undefined
* compute items and itemsCount based on data
* fix TS error
* changelog
* Add flaky test reporter for flaky e2e test reporter
* Add to stalebot workflow instead
* Update stale action to 9 for node 20
---------
Co-authored-by: Jon Lane <jon.lane@automattic.com>
* Updated deprecated gh-script action to node 20 variant
* Minor change in e2e test to trigger CI
* Revert e2e test change
---------
Co-authored-by: Jon Lane <jon.lane@automattic.com>
* Remove empty "Unknown" handling.
This is because `get_origin_label` would return "Unknown" by default, and therefore empty($origin) would not be true.
If someone use a wc_order_attribution_origin_formatted_source filter to return '' as the formatted source, we should respect it anyway and we should not override it with "Unknown".
* Add changelog.