OnboardingState::settle( [ StarterContent::class, 'has_floor' ] ) ); // Reservation emails. ReservationMail::instance()->register(); // Reminder cron + outbound webhook. Reminders::instance()->register(); Webhook::instance()->register(); // Reservations copied to Google Calendar; busy events block times. GoogleCalendar::instance()->register(); // Tables kept while a guest fills in the booking form. CheckoutHolds::register(); add_action( 'rest_api_init', static function (): void { ( new SettingsController() )->register_routes(); ( new FloorController() )->register_routes(); ( new AvailabilityController() )->register_routes(); ( new ReservationController() )->register_routes(); ( new BookController() )->register_routes(); ( new CalendarController() )->register_routes(); ( new SetupController() )->register_routes(); ( new FormController() )->register_routes(); ( new EmailController() )->register_routes(); } ); // Front-end reservation blocks. add_action( 'init', [ BlockRegistry::instance(), 'register' ] ); // The admin page and the card on the WordPress dashboard. if ( is_admin() ) { Screen::instance()->register(); DashboardWidget::instance()->register(); ActivationRedirect::instance()->register(); PrivacyPolicy::register(); } } }