1ac8577fc2
* 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. |
||
---|---|---|
.. | ||
categories | ||
coupons | ||
customers | ||
downloads | ||
orders | ||
products | ||
revenue | ||
stock | ||
taxes | ||
README.md | ||
index.js | ||
style.scss |
README.md
Reports
The core reports offered by WooCommerce live in this folder. The Header is added automatically by the parent Report component, each individual component should contain just the report contents.
Extending Reports
New reports can be added by third-parties without altering woocommerce-admin
, by hooking into the reports filter, woocommerce_admin_reports_list
. For example:
addFilter( 'woocommerce_admin_reports_list', 'analytics/my-report', pages => {
return [
...pages,
{
report: 'example',
title: 'My Example Extension',
component: Report,
},
];
} );
Each report is defined by an object containing report
, title
, component
.
report
(string): The path used to show the report, ex:/analytics/example
title
(string): The title shown in the breadcrumbs & document title.component
(react component): The component containing the report content- everything on the page under the breadcrumbs header.
The component will get the following props:
query
(object): The query string for the current view, can be used to paginate reports, or sort/filter report data.path
(string): The exact path for this view.pathMatch
(string): The route matched for this view, should always be/analytics/:report
.params
(object): This will contain thereport
from the path, which should matchreport
in the page object.
Note: Adding your page to woocommerce_admin_reports_list
does not add the item to the admin menu, you'll need to do that in PHP with the woocommerce_admin_report_menu_items
filter.