init_hooks(); } private function init_hooks() { if ( is_admin() ) { new Admin\Admin(); } add_action( 'rest_api_init', [ $this, 'register_rest_routes' ] ); $jsonld = new Core\JSONLD_Injector(); add_action( 'wp_head', [ $jsonld, 'maybe_inject_jsonld' ] ); $monitor = new Core\Product_Monitor(); add_action( 'updated_post_meta', [ $monitor, 'on_meta_update' ], 10, 4 ); add_action( 'added_post_meta', [ $monitor, 'on_meta_update' ], 10, 4 ); add_action( 'transition_post_status', [ $monitor, 'on_status_transition' ], 10, 3 ); } public function register_rest_routes() { $controllers = [ new Api\REST_Account(), new Api\REST_Internal_Protection(), new Api\REST_Internal_MC4P(), new Api\REST_Mint(), new Api\REST_OAuth(), new Api\REST_Products(), new Api\REST_Protection(), new Api\REST_Domain_Verification(), new Api\REST_Settings(), new Api\REST_Setup_Status(), ]; if ( Editions::is_woo() ) { $controllers[] = new Api\REST_Billing(); $controllers[] = new Api\REST_Woo_Billing(); } if ( MINTALL_FEATURE_IN_DEVELOPMENT ) { $controllers[] = new Api\REST_Promo(); } foreach ( $controllers as $controller ) { $controller->register_routes(); } } }