Per aggiungere a quanto scritto da @Firepup650, quando il tuo codice chiama
DiscourseUtilities::add_user_to_discourse_group($user_id, $s2member_level_2_groups);
sta chiamando una funzione di supporto che effettua una richiesta alla route sync_sso di Discourse: Sync DiscourseConnect user data with the sync_sso route. Tale richiesta viene utilizzata per aggiornare un utente esistente o per crearne uno nuovo. Se l’utente con $user_id non ha mai effettuato l’accesso al tuo sito Discourse, verrà creato un nuovo utente. Dovrebbe comunque essere aggiunto ai gruppi senza alcun problema, ma genererà una notifica per i moderatori perché il tuo sito ha abilitato l’impostazione del sito must approve users (gli utenti devono essere approvati):
