init_controllers(); $this->init(); } /** * Bootstrap runtime controllers (free scope: no Gutenberg blocks). * * @return void */ private function init_controllers() { new PostTypes(); ReservationService::instance(); EmailManager::instance(); RestApi::init(); if (is_admin()) { new AdminManager(); new Bookings(); } FrontendManager::instance(); new IntegrationService(); } /** * Register late-binding WordPress hooks. * * @return void */ private function init() { bizdex_uplisting_ensure_permalink_defaults(); $stored_rewrite_version = get_option(BIZDEX_UPLISTING_REWRITE_VERSION, ''); if ($stored_rewrite_version !== BIZDEX_UPLISTING_VERSION) { bizdex_uplisting_schedule_rewrite_flush(); } } }