Consenti l'accesso solo quando l'utente ha un piano di abbonamento su Memberpress

Il mio cliente ha un’installazione di WordPress con Memberpress, che è il luogo in cui un utente effettua il login per accedere a Discourse.

È possibile consentire l’accesso a Discourse solo agli utenti che hanno un piano Memberpress attivo?

Grazie
Per

Dai un’occhiata alla mia prima risposta a questo argomento per i dettagli su come limitare gli accessi a Discourse: How to prevent some WP users from being able to login to Discourse. Questo presuppone che il sito WordPress funzioni come provider SSO per Discourse e che tu stia utilizzando il plugin WP Discourse.

1 Mi Piace

Grazie Simon, è fantastico! :slight_smile:

Questo mi permette di verificare l’accesso prima di reindirizzare l’utente a Discourse.
Sai per caso se esiste un buon modo per verificare se un utente ha un abbonamento attivo?
Questa sarebbe la condizione in base alla quale scegliere se reindirizzarlo a Discourse o meno.

Grazie!!

Sono certo che esista un modo per farlo, ma non sono sicuro di come accedere al livello di abbonamento Memberpress di un utente su WordPress. È possibile che ci siano esempi su come farlo nei post della nostra categoria Support > WordPress.

Ok, grazie :slight_smile:
Buon fine settimana!

1 Mi Piace

Se anche voi state cercando di ottenere lo stesso risultato, ho trovato la soluzione qui:

Simon: un’ultima domanda: per quanto tempo un utente rimane connesso a Discourse prima di essere disconnesso? Oppure l’utente rimane connesso indefinitamente finché non clicca sul pulsante “Disconnetti”?

Questo è controllato dall’impostazione del sito Discourse maximum session age. Tale impostazione ha come valore predefinito 1440 ore. A meno che non sia impostata a un valore molto basso, non è un metodo affidabile per disconnettere gli utenti. Questo perché stabilisce il periodo di tempo durante il quale un utente rimane connesso dalla sua ultima visita. Impostare maximum session age a un numero molto basso di ore potrebbe anche causare disagi agli utenti del tuo sito.

Credo che il tuo approccio migliore sia disconnettere gli utenti da Discourse tramite l’API quando le iscrizioni scadono. Qui trovi un esempio di codice su come farlo: wp-discourse/lib/sso-provider/discourse-sso.php at main · discourse/wp-discourse · GitHub. Potresti aver bisogno dell’aiuto di uno sviluppatore per effettuare una chiamata API che disconnetta gli utenti da Discourse quando la loro iscrizione scade.

1 Mi Piace

Posso semplicemente chiamare la funzione logout_from_discourse() o devo copiare tutto quel codice?

Non è semplice come chiamare solo la funzione logout_from_discourse(), ma dovrebbe essere possibile utilizzare un hook di azione di WordPress per chiamare tale funzione quando viene eseguita un’azione specifica sul tuo sito WordPress. Ad esempio, quando viene revocato il livello di adesione di un utente. Probabilmente qualcuno nella comunità Discourse può aiutarti con la sintassi necessaria per far funzionare tutto.

1 Mi Piace