Automattic\WooCommerce\Admin\API

Init::rest_api_init_wc_analyticspublicWC 1.0

Load the wc-analytics namespace controllers.

Method of the class: Init{}

Hooks from the method

Returns

null. Nothing (null).

Usage

$Init = new Init();
$Init->rest_api_init_wc_analytics();

Init::rest_api_init_wc_analytics() code WC 10.4.3

public function rest_api_init_wc_analytics() {
	// Controllers in wc-analytics namespace, but loaded irrespective of analytics feature value.
	$controllers = array(
		'Automattic\WooCommerce\Admin\API\Notes',
		'Automattic\WooCommerce\Admin\API\NoteActions',
		'Automattic\WooCommerce\Admin\API\Coupons',
		'Automattic\WooCommerce\Admin\API\Data',
		'Automattic\WooCommerce\Admin\API\DataCountries',
		'Automattic\WooCommerce\Admin\API\DataDownloadIPs',
		'Automattic\WooCommerce\Admin\API\Orders',
		'Automattic\WooCommerce\Admin\API\Products',
		'Automattic\WooCommerce\Admin\API\ProductAttributes',
		'Automattic\WooCommerce\Admin\API\ProductAttributeTerms',
		'Automattic\WooCommerce\Admin\API\ProductCategories',
		'Automattic\WooCommerce\Admin\API\ProductVariations',
		'Automattic\WooCommerce\Admin\API\ProductReviews',
		'Automattic\WooCommerce\Admin\API\ProductsLowInStock',
		'Automattic\WooCommerce\Admin\API\SettingOptions',
		'Automattic\WooCommerce\Admin\API\Taxes',
	);

	$analytics_controllers = array();
	if ( Features::is_enabled( 'analytics' ) ) {
		$analytics_controllers = array(
			'Automattic\WooCommerce\Admin\API\Customers',
			'Automattic\WooCommerce\Admin\API\Leaderboards',
			'Automattic\WooCommerce\Admin\API\Reports\Controller',
			'Automattic\WooCommerce\Admin\API\Reports\Import\Controller',
			'Automattic\WooCommerce\Admin\API\Reports\Export\Controller',
			'Automattic\WooCommerce\Admin\API\Reports\Products\Controller',
			'Automattic\WooCommerce\Admin\API\Reports\Variations\Controller',
			'Automattic\WooCommerce\Admin\API\Reports\Products\Stats\Controller',
			'Automattic\WooCommerce\Admin\API\Reports\Variations\Stats\Controller',
			'Automattic\WooCommerce\Admin\API\Reports\Revenue\Stats\Controller',
			'Automattic\WooCommerce\Admin\API\Reports\Orders\Controller',
			'Automattic\WooCommerce\Admin\API\Reports\Orders\Stats\Controller',
			'Automattic\WooCommerce\Admin\API\Reports\Categories\Controller',
			'Automattic\WooCommerce\Admin\API\Reports\Taxes\Controller',
			'Automattic\WooCommerce\Admin\API\Reports\Taxes\Stats\Controller',
			'Automattic\WooCommerce\Admin\API\Reports\Coupons\Controller',
			'Automattic\WooCommerce\Admin\API\Reports\Coupons\Stats\Controller',
			'Automattic\WooCommerce\Admin\API\Reports\Stock\Controller',
			'Automattic\WooCommerce\Admin\API\Reports\Stock\Stats\Controller',
			'Automattic\WooCommerce\Admin\API\Reports\Downloads\Controller',
			'Automattic\WooCommerce\Admin\API\Reports\Downloads\Stats\Controller',
			'Automattic\WooCommerce\Admin\API\Reports\Customers\Controller',
			'Automattic\WooCommerce\Admin\API\Reports\Customers\Stats\Controller',
		);

		// The performance indicators controllerq must be registered last, after other /stats endpoints have been registered.
		$analytics_controllers[] = 'Automattic\WooCommerce\Admin\API\Reports\PerformanceIndicators\Controller';
	}

	$controllers = array_merge( $analytics_controllers, $controllers );

	if ( ! did_action( 'woocommerce_admin_rest_controllers' ) ) {
		/**
		 * Filter for the WooCommerce Admin REST controllers.
		 *
		 * @param array $controllers List of rest API controllers.
		 *
		 * @since 3.5.0
		 *
		 * @see   self::rest_api_init_wc_admin() for extended documentation.
		 */
		$controllers = apply_filters( 'woocommerce_admin_rest_controllers', $controllers );
		if ( ! is_array( $controllers ) ) {
			return;
		}
	}

	$controllers = array_values( array_unique( $controllers ) );
	foreach ( $controllers as $controller ) {
		if ( is_string( $controller ) ) {
			$this->$controller = new $controller();
			$this->$controller->register_routes();
		}
	}
}