Gestione delle iscrizioni annullate

Sto utilizzando WordPress SSO per autorizzare gli utenti che hanno acquistato un abbonamento (ho implementato una logica personalizzata in WordPress per determinare se sono membri). Tutto funziona bene, ma mi chiedo come gestire gli abbonamenti annullati.

Ovviamente, l’annullamento del loro abbonamento significa che non possono più accedere. Purtroppo, devo comunque disconnetterli manualmente quando annullano, nel caso continuino ad accedere al forum e mantengano attiva la loro sessione (fare qualsiasi cosa manualmente era qualcosa che pensavo di aver lasciato alle spalle quando sono passato dal mio gruppo Facebook).

Ma ho due ulteriori problemi a cui penso:

  • Cosa succede ai temi/post che hanno pubblicato nel forum? Voglio che rimangano, quindi presumibilmente ciò significa che non posso eliminare l’utente.
  • Voglio assicurarmi che le e-mail di riepilogo non vengano inviate ai membri con abbonamento annullato. Discourse ignora completamente che l’account è stato annullato finché non faccio “qualcosa”. Cosa devo fare, con la precisazione che non voglio rimuovere il loro contenuto?

Tutto questo è risolto dalla soppressione dell’utente? Ci sono delle best practice per automatizzare questo processo? Suppongo che sia necessaria una forma di codice personalizzato, ma verifico per vedere se posso evitarlo.

Grazie.

Puoi anonimizzarli. In questo modo le informazioni rimangono, ma non l’utente.

Un’altra cosa che potresti fare è implementare una logica personalizzata: invece di creare l’utente, aggiungerlo a un nuovo gruppo. In questo modo, il digest dovrebbe essere accessibile solo a chi può accedere alla categoria.

Un’altra opzione è eseguire una sorta di cronjob che forzi il logout (o la rimozione dell’account) per tutti gli utenti che sono stati cancellati.

Grazie, @marianord. Temo di non aver compreso appieno il secondo paragrafo. Quando dici “invece di creare l’utente”, a quale fase del ciclo di vita dell’utente ti riferisci? Probabilmente mi sto perdendo un punto semplice, ma non sono chiaro riguardo al suggerimento. Potresti chiarire?

Inoltre, esaminerò la funzione di anonimizzazione, ma ho alcune domande a riguardo.

  • Come apparirà il loro contenuto in termini di nome utente visualizzato accanto ai loro post?
  • Se riesco a farli ri-iscrivere alla mia membership (stesso indirizzo e-mail, ecc.), questo “anonimizzerà” in qualche modo i loro vecchi post, ovvero torneranno a essere visualizzati con il loro nome utente?

Grazie ancora.

A proposito, la mia preoccupazione principale in tutto questo riguarda l’email di riepilogo, dato che è un aspetto rivolto all’utente (invio di email). Immagino che un’altra opzione sia modificare manualmente la configurazione del riepilogo per non inviarla mai, giusto (anche se si tratta di nuovo di un passaggio manuale e speriamo che prima o poi sia possibile farlo tramite un’API).

Se ciò è fattibile, allora tecnicamente non devo fare nulla con l’utente. Possono rimanere utenti validi in Discourse, le email si interromperanno (vedi sopra), ma non potranno più accedere.

Forse funziona. Cosa ne pensate?

Sospendere l’utente tramite l’API di Discourse potrebbe essere un buon modo per automatizzare questo processo. Quando un utente viene sospeso, viene disconnesso da Discourse e non riceverà più le email di riepilogo. Se viene fornita una message al momento della sospensione, tale messaggio verrà inviato all’utente via email. Questo potrebbe essere utilizzato per incoraggiarli a rinnovare l’abbonamento.

Una cosa da notare è che la sospensione è stata progettata per gestire utenti problematici, non per gestire il caso di un abbonamento scaduto che potrebbe essere rinnovato in futuro. Potresti scoprire di dover personalizzare il testo del file user_notifications.account_suspended.text_body_template del tuo sito per modificare il modello dell’email inviata agli utenti sospesi.

I post creati da un utente anonimizzato appaiono così:

Non esiste un modo semplice per rimuovere l’anonimizzazione di un utente. L’unico approccio che conosco è unire l’utente anonimo a un nuovo utente dalla console di Rails. Poiché l’anonimizzazione di un utente rimuove tutti i dati identificativi, potrebbe essere difficile sapere quali account unire. Se esiste la possibilità che gli utenti rinnovino i loro abbonamenti, sospendere l’utente è probabilmente un approccio migliore.

Grazie, @simon: è molto utile.

Sì, da quello che dici, la sospensione sembra l’approccio giusto in questo caso. Ma ho una domanda riguardo alle e-mail inviate. Ho e-mail basate sul CRM che vengono inviate quando gli utenti cancellano, quindi non voglio che Discourse invii nulla.

Hai menzionato: “Se viene fornito un messaggio quando l’utente viene sospeso, quel messaggio verrà inviato come e-mail all’utente”.

Se NON fornisco un messaggio, significa che nulla viene inviato e non devo preoccuparmi di aggiornare il modello (poiché non verrà mai inviato)?

Guardando solo la sospensione, forse non ho ben chiaro come vengono utilizzati i campi “Motivo della sospensione” e e-mail.

In sostanza, il mio obiettivo è sospendere l’utente e non fare assolutamente nient’altro :slight_smile:

Grazie ancora.

È corretto. Il modo più semplice per testarlo è creare un utente con un indirizzo email temporaneo e provare a sospendere e riattivare l’utente tramite l’interfaccia utente.

Quando un utente viene sospeso, è necessario impostare suspended_until e reason. Questi campi vengono visualizzati all’utente sospeso quando tenta di accedere al sito. Puoi personalizzare questo testo cercando login.suspended_with_reason nella pagina Admin / Personalizza / Testo.

A meno che tu non abiliti l’impostazione del sito hide suspension reasons, verrà visualizzato un avviso che l’utente è stato sospeso sulla card dell’utente e sulla pagina del profilo dell’utente sospeso. Se abiliti l’impostazione del sito hide suspension reasons, l’avviso sarà visibile solo allo staff.