booted ) { return; } $this->booted = true; Installer::maybe_upgrade(); $repository = new Repository(); $references = new ReferenceService($repository, new ReferenceCalculator()); $recorder = new Recorder($repository, $references); $recorder->register(); ( new Reconciler($recorder, $repository) )->register(); ( new Display($references, $recorder) )->register(); ( new CjeuMode($references) )->register(); ( new Perishable() )->register(); ( new CouponCampaigns() )->register(); $importer = new OmnibusImporter($repository, $references); $importer->register(); if ( is_admin() ) { ( new Assets() )->register(); ( new Settings() )->register(); ( new AdminPage() )->register(); Health::register(); ( new DashboardWidget() )->register(); ( new PriceHistoryBox($repository, $references) )->register(); ( new OmnibusImportNotice($importer) )->register(); } if ( defined( 'WP_CLI' ) && WP_CLI ) { Commands::register( $importer ); } $this->recorder = $recorder; } /** * For integrations: record a product's current price, e.g. after a custom import. */ public function recorder() : ?Recorder { return $this->recorder; } }