Tutorial

Creare un’area riservata con membership a scadenza

Membership Area riservata

Ti è mai capitato di dover creare un’area riservata a cui potessero accedere solo alcuni utenti, magari dopo aver acquistato un accesso che scade dopo un mese? Se la tua risposta è sì, di sicuro ti sarai imbattuto nella miriade di plugin che trattano questo argomento e ti sarai anche subito reso conto che questo genere di plugin è quasi sempre a pagamento o, nel caso contrario, hanno come gratuite solo le feature base.

Googlando un po’ ho trovato tante soluzioni, di sicuro quelle migliori sono quelle completamente a pagamento, ho trovato anche soluzioni gratuite che però si sono rivelate poco complete o molto contorte. Francamente a me serviva una cosa semplice, il mio obiettivo è creare un’area riservata dove gli utenti potessero accedere acquistando un accesso membership che scade dopo un determinato periodo di tempo (un mese).

Plugin per gestire aree con membership

Prima di iniziare a sporcarci le mani con un po’ di codice voglio elencare alcuni dei plugin che ho provato:

  • MemberPress – Bella soluzione All-In-One, purtroppo solo Premium, costo base 129$/anno.
  • Restrict content pro – Versione gratuita poco utile se non installi gli add-ons, che in tutto sono 17 e vanno presi tutti insieme e costano 249$/anno.
  • S2 Member – Versione gratuita un po’ contorta inoltre alcune funzionali “gradite” come i coupon sono a pagamento.
  • WP members – Bello, gratuito, ma mancano alcune funzioni fondamentali, una su tutte la possibilità di acquistare l’accesso. La versione free prevede solo la registrazione e non la modalità acquisto.
  • WooCommerce Memberships – Ben integrato con Woocommerce, completamente a pagamento 249$/anno.
  • aMember – Non proprio un plugin WordPress, però molto utilizzato, la soluzione completa al 100% per creare una membership, ma è praticamente un CMS a parte. Unica pecca il design è pessimo. Costo 149$ lifetime.

Creiamo la nostra area riservata

In questo tutorial voglio mostrarti come puoi creare un semplice sistema di membership con l’ausilio di alcuni plugin gratuiti e qualche riga di codice.

Innanzitutto andiamo ad installare il plugin che ci permetterà di commercializzare i nostri accessi. Dato che non si tratta di vendere un prodotto “fisico” eviterei di utilizzare WooCommerce, di sicuro il re indiscusso dell’ecommerce, ma andremo ad usare Easy Digital Downloads, un plugin molto utile quando si trattano prodotti digitali, dove quindi non occorre spedire nulla di fisico.

Easy Digital Download

Easy digital downloads è un plugin molto completo, integra tutte le funzioni necessarie per creare un ecommerce: coupon sconto, rapporti sulle vendite, Paypal è supportato e anche il nuovo gateway Amazon Pay, inoltre ha una nutrita community che sforna plugin gratuiti che puoi trovare sul repository ufficiale di WordPress.

EDD Downloads As Services

E proprio tra i tanti plugin gratuiti ho trovato anche EDD Downloads as Services, utile per eliminare il tasto download nella Dashboard dell’utente che acquisterà l’accesso alla nostra area riservata.

User Access Manager

L’ultimo plugin che andremo ad installare in questa prima parte è User Access Manager, il plugin che si occuperà di controllare l’accesso ai contenuti riservati agli utenti membri.

Creare un nuovo ruolo utente

A questo punto dobbiamo creare un ruolo utente che avrà i privilegi di accesso ai contenuti premium, per fare ciò andiamo ad incollare queste righe di codice nel nostro file functions.php

add_role(
    'livellobase',
    __( 'Livello Base' ),
    array(
        'read'   => true,
     )
);

Fatto questo, adesso abbiamo un ruolo utente chiamato Livello Base con il semplice “privilegio” di poter leggere le pagine e gli articoli. Dobbiamo far in modo che gli utenti con questo ruolo possano poter accedere alle pagine con i contenuti riservati ai membri premium. Entrando in UAM (User Access Manager) e selezionando la voce Manage user groups andiamo a creare un gruppo dal nome Contenuti Premium, selezioniamo Only group user come autorizzazioni di lettura e assegnamo questo gruppo agli utenti con ruolo Livello Base.

UAM Creare un gruppo

A primo impatto UAM potrebbe sembrare ostico, ma se lo si guarda con attenzione il funzionamento è davvero elementare. Tramite il pannello Impostazioni è possibile scegliere il post type (articoli, pagine, custom post type, ecc) da bloccare, oppure si può scegliere di bloccare una specifica categoria o tassonomia.

Il modo più semplice è quello di agire su una singola pagina/articolo, cliccando su modifica e selezionando la casella di controllo nel metabox della barra di destra “Autorizzazione”.

UAM Restringi accesso a una pagina

Nella pagina che avremo deciso di rendere accessibile solo agli utenti membri potremo inserire i nostri contenuti premium da divulgare solo agli utenti che hanno acquistato l’accesso, come testi, immagini e video (per i video possiamo utilizzare dei video caricati su YouTube e incorporarli nella nostra pagina selezionando Privato come privacy del video).

Consiglio

Tramite UAM possiamo rendere private anche le immagini, dal menù impostazioni seleziona Impostazioni dei File e quindi abilita il blocco dei file tramite .htaccess, configurando bene le impostazioni potrai bloccare l’accesso anche a cartelle al di fuori di WordPress.

Una volta ristretto l’accesso ad una pagina/articolo, noterai che, se è presente nel menù, al nome è stato aggiunto un suffisso [L], questo sarà visibile solo agli amministratori del sito (che nel frattempo potranno accedere senza problema a tutte le pagine) e serve per ricordarti che l’accesso a quelle pagine è controllato da UAM.

Creiamo il prodotto

Ora non ci resta che assegnare il ruolo Livello Base a tutti gli utenti che acquistato un determinato prodotto, per fare ciò dobbiamo innanzitutto creare un nuovo prodotto in Easy Digital Downloads, scegliamo Downloads dalla colonna di sinistra, Aggiungi nuovo, diamo un nome al nostro prodotto (ad esempio Accesso Premium), inseriamo una descrizione, il prezzo (il prodotto deve avere un costo superiore a 0), ricordiamoci di selezionare “This is a service” dalla colonna di destra e possiamo anche cliccare su pubblica.

Easy Digital Download: Creare un prodotto

Ora non ci resta che assegnare il ruolo automaticamente agli utenti che completano un acquisto tramite Easy Digital Downloads, per fare questo ci avvaliamo di questa funzione che andremo a incollare nel nostro file functions.php

function wpguru_edd_purchase_add_role( $payment_id ) {
   
    $payment = new EDD_Payment( $payment_id );

    // assegna il ruolo 'livellobase'
	$u = new WP_User( $payment->user_id );
	$u->add_role( 'livellobase' );
	
}
add_action( 'edd_complete_purchase', 'wpguru_edd_purchase_add_role' );

Bene, adesso non appena un utente completerà un acquisto (in questo caso noi abbiamo un solo prodotto) gli verrà assegnato automaticamente il ruolo utente “Livello Base”, che a sua volta gli concederà di accedere alle pagine con accesso ristretto.

Consiglio

Ricorda che dovrai configurare per bene Easy Digital Download, selezionando la voce Impostazioni nel menù Download imposta innanzitutto i metodi di pagamento, c’è anche una modalità Test per fare le prime prove.

Impostiamo la scadenza

La seconda parte del nostro progetto prevedeva la scadenza della membership dopo un mese dall’acquisto, ovviamente possiamo scegliere il segmento temporale che vogliamo (un giorno, una settimana, un mese, un anno, ecc).

Expire Users

Per fare ciò ci avvaliamo di un altro plugin gratuito molto semplice ed efficace: Expire Users. Una volta scaricato ed installato andiamo a configurarlo per il nostro utilizzo da Utenti > Impostazioni scadenza e spuntando “Imposta automaticamente data di scadenza per i nuovi utenti che si registrano tramite il form di registrazione” ci verrà mostrato il campo dove possiamo impostare la data di scadenza. Come detto, io ho scelto 1 mese dall’iscrizione, ma puoi facilmente notare che ci sono moltissime possibilità.

A questo punto dobbiamo scegliere cosa far fare al plugin al termine del tempo e dal menù a tendina “Alla scadenza, imposta al ruolo” scegliamo Sottoscrittore, in modo da lasciare la registrazione dell’utente, ma rimuovendo i permessi di accesso alle pagine con i contenuti premium.

Expire Users - Impostare scadenza

Il plugin permette anche di inviare un’email all’utente e una all’amministratore nel momento in cui l’account viene disattivato. Inoltre è possibile personalizzare il messaggio dell’email destinato sia all’utente che all’amministratore. Insomma un bel plugin utilissimo per mille usi.


Photo by Jonathon Young on Unsplash

shield

Uno sviluppatore WordPress sempre al tuo fianco

  • Assistenza tecnica su temi
  • Assistenza tecnica su plugin
  • Creazione Plugin Personalizzati
  • Creazione Temi Personalizzati
  • Ripristino siti hackerati
  • Hosting managed WordPress

Chiedi una Consulenza Gratuita

CHIEDI UNA CONSULENZA GRATUITA

4 thoughts on “Creare un’area riservata con membership a scadenza

  1. Articolo molto utile, ma ho una Domandona : e se l’utente poi vuole farsi una paginetta sua di presentazione ?

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *