Automattic\WooCommerce\Admin\API

Init::rest_api_init_wc_adminpublicWC 1.0

Load the wc-admin namespace controllers.

Method of the class: Init{}

Hooks from the method

Returns

null. Nothing (null).

Usage

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

Init::rest_api_init_wc_admin() code WC 10.4.3

public function rest_api_init_wc_admin() {
	$controllers = array(
		'Automattic\WooCommerce\Admin\API\Notice',
		'Automattic\WooCommerce\Admin\API\Features',
		'Automattic\WooCommerce\Admin\API\Experiments',
		'Automattic\WooCommerce\Admin\API\Marketing',
		'Automattic\WooCommerce\Admin\API\MarketingOverview',
		'Automattic\WooCommerce\Admin\API\MarketingRecommendations',
		'Automattic\WooCommerce\Admin\API\MarketingChannels',
		'Automattic\WooCommerce\Admin\API\MarketingCampaigns',
		'Automattic\WooCommerce\Admin\API\MarketingCampaignTypes',
		'Automattic\WooCommerce\Admin\API\Options',
		'Automattic\WooCommerce\Admin\API\Settings',
		'Automattic\WooCommerce\Admin\API\PaymentGatewaySuggestions',
		'Automattic\WooCommerce\Admin\API\Themes',
		'Automattic\WooCommerce\Admin\API\Plugins',
		'Automattic\WooCommerce\Admin\API\OnboardingFreeExtensions',
		'Automattic\WooCommerce\Admin\API\OnboardingProductTypes',
		'Automattic\WooCommerce\Admin\API\OnboardingProfile',
		'Automattic\WooCommerce\Admin\API\OnboardingTasks',
		'Automattic\WooCommerce\Admin\API\OnboardingThemes',
		'Automattic\WooCommerce\Admin\API\OnboardingPlugins',
		'Automattic\WooCommerce\Admin\API\OnboardingProducts',
		'Automattic\WooCommerce\Admin\API\MobileAppMagicLink',
		'Automattic\WooCommerce\Admin\API\ShippingPartnerSuggestions',
	);

	if ( ! did_action( 'woocommerce_admin_rest_controllers' ) ) {
		/**
		 * Filter for the WooCommerce Admin REST controllers.
		 *
		 * Admin and Analytics controllers were originally loaded in one place.  However, with attempts to dynamically
		 * load namespaces based on context, these were split up.  However, to maintain backward compatibility, we
		 * must run this hook if either namespace is loaded because extensions could be targeting either namespace.
		 *
		 * @param array $controllers List of rest API controllers.
		 *
		 * @since 3.5.0
		 */
		$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();
		}
	}
}