is_available() && $integration->is_enabled() ) { $integration->boot(); } } } /** @return Integration_Base[] */ public static function all(): array { if ( empty( self::$registry ) ) { self::$registry = apply_filters( 'bookingistic_integrations', self::default_integrations() ); } return self::$registry; } public static function find( string $slug ): ?Integration_Base { foreach ( self::all() as $integration ) { if ( $integration->slug() === $slug ) { return $integration; } } return null; } /** @return Integration_Base[] */ private static function default_integrations(): array { return [ new WooCommerce_Integration(), new Google_Calendar_Integration(), new Outlook_Integration(), new Messageistic_Integration(), new CRMistic_Integration(), ]; } }