woocommerce/plugins/woocommerce-admin/client/analytics/report
Jeff Stieler 650ecac14a Add "Product Attribute" advanced report filter. (https://github.com/woocommerce/woocommerce-admin/pull/5038)
* Simplify variation name logic.

* Remove errant commas from variation autocomplete options.

* Add single variation filter to products report.

* Include more variations in search results.

Also trim the response fields down.

* Add initial AttributeFilter component.

Only selected of attribute names for now.

* Add attribute term selection control.

* Position attribute filter inputs side by side.

* Add loading indicator to attribute term control.

* Clear term when attribute value changes, and handle backspaces.

* Generate screen reader text.

* Translate filter labels, add field separator.

* Improve grammar in screen reader text.

* Fix lint errors.
2020-08-27 08:11:12 -04:00
..
categories Items dataStore: Migrate from wc-api (https://github.com/woocommerce/woocommerce-admin/pull/5009) 2020-08-21 11:37:41 +12:00
coupons Remove unused lib/date (https://github.com/woocommerce/woocommerce-admin/pull/4987) 2020-08-18 09:53:13 +12:00
customers Remove unused lib/date (https://github.com/woocommerce/woocommerce-admin/pull/4987) 2020-08-18 09:53:13 +12:00
downloads Remove unused lib/date (https://github.com/woocommerce/woocommerce-admin/pull/4987) 2020-08-18 09:53:13 +12:00
orders Remove unused lib/date (https://github.com/woocommerce/woocommerce-admin/pull/4987) 2020-08-18 09:53:13 +12:00
products Add "Product Attribute" advanced report filter. (https://github.com/woocommerce/woocommerce-admin/pull/5038) 2020-08-27 08:11:12 -04:00
revenue Remove unused lib/date (https://github.com/woocommerce/woocommerce-admin/pull/4987) 2020-08-18 09:53:13 +12:00
stock Stock Report: Fix bad text domains (https://github.com/woocommerce/woocommerce-admin/pull/4980) 2020-08-14 08:25:08 +12:00
taxes Fix dependency declarations (https://github.com/woocommerce/woocommerce-admin/pull/4972) 2020-08-13 14:05:22 +12:00
README.md Documentation: Fix Add Report (https://github.com/woocommerce/woocommerce-admin/pull/4991) 2020-08-18 09:45:21 +12:00
get-reports.js Replace useFilters with wp's withFilters (https://github.com/woocommerce/woocommerce-admin/pull/4962) 2020-08-21 11:14:55 +12:00
index.js Items dataStore: Migrate from wc-api (https://github.com/woocommerce/woocommerce-admin/pull/5009) 2020-08-21 11:37:41 +12:00
style.scss Update @wordpress/base-styles and replace deprecated variables (https://github.com/woocommerce/woocommerce-admin/pull/4759) 2020-07-17 12:11:42 +12:00

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. First, a page will need to be registered in PHP to populate menu items.

function register_page( $report_pages ) {
	$report_pages[] = array(
		'id'     => 'extension-example',
		'title'  => __( 'Example', 'plugin-domain' ),
		'parent' => 'woocommerce-analytics',
		'path'   => '/analytics/example',
	);
	return $report_pages;
}

add_filter( 'woocommerce_analytics_report_menu_items', 'register_page' );

Each menu item is defined by an array containing id, title, parent, and path.

  • report (string): The report's id.
  • title (string): The title shown in the sidebar.
  • parent (string): The item's parent in the navigational heirarchy.
  • path (string): The report's relative path.

Next, hook into the JavaScript reports filter, woocommerce_admin_reports_list, to add a report component.

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 the report from the path, which should match report in the page object.