• Skip to content
  • Skip to primary sidebar

I dolori del giovane Webber

Epopea semiseria di uno sviluppatore

Come creare un’area riservata in WordPress in 3… 2… 1…

25/05/2019

Photo by Micah Williams on Unsplash

Vuoi caricare documenti confidenziali sul tuo sito WordPress e mostrarli solo a specifici utenti? Quello che ti serve è un’area riservata che protegge i file dagli accessi pubblici ma li rende fruibili agli utenti iscritti al sito.

In questo post andremo ad analizzare il plugin Sekiro, una soluzione che sfrutta il più possibile le funzionalità native di WordPress. Se hai fretta scaricalo subito e attiva la tua area riservata al volo.

Questo plugin è gratuito!

Se ti è stato utile puoi supportami nel suo sviluppo.

Ok, ti offro una birra 😉
Cliccando sul pulsante qua sopra verrai rediretto alla mia pagina PayPal.Me precompilata con un importo di 4,00€. Se vuoi donare un'altra cifra puoi seguire questo link ed inserire tu l'importo. Per donare con PayPal.Me hai bisogno di un account PayPal.

Analisi delle funzionalità

Quello che andremo a realizzare è una singola pagina riservata a cui collegare una serie di documenti protetti, ognuno associato a specifici utenti selezionabili dalla lista degli utenti sottoscrittori del tuo sito web. Per la registrazione sfrutteremo il meccanismo di WordPress con le sue pagine native oppure, semplicemente, decideremo per una gestione centralizzata delle iscrizioni bloccando la registrazione al sito.

Scelta dell’approccio

Per limitare al minimo l’uso dei plugin, come detto, faremo capo a WordPress per la registrazione. L’unica modifica da eseguire è cambiare il ruolo di default degli utenti che si iscrivono al sito web da “sottoscrittore” a “nessun ruolo per questo sito”. In questo modo avremo la garanzia che gli utenti accreditati all’area riservata saranno solo quelli che l’amministratore ha deciso di “promuovere” manualmente a “sottoscrittori”.

Un’altra piccola modifica da attuare è il redirect automatico degli utenti loggati alla pagina dell’area riservata; pagina che andrà anche protetta dall’accesso diretto dei visitatori del sito.

A questo punto ci manca la possibilità di scegliere quali documenti visualizzare nell’area riservata e a quali utenti farli vedere. Per realizzare l’interfaccia che ci consente di eseguire queste operazioni è necessario scrivere una discreta quantità di codice PHP ma esiste una scorciatoia molto utile al nostro fine: utilizzare il plugin Pods.

Pods è plugin open source indispensabile quando si inizia a lavorare intensamente su WordPress (pensatelo come un’alternativa free al più noto plugin ACF Pro) in quanto consente di gestire agevolmente custom post e custom field. La sua applicazione potrà venirvi in aiuto in molte situazioni.

Esiste comunque un’alternativa plugin-free ma per renderla di semplice implementazione dobbiamo rinunciare alla possibilità di associare i file ai singoli utenti o a gruppi di essi. Praticamente tutto quello che l’amministratore mette nella pagina protetta (in questo caso potrei estendere il meccanismo anche a più pagine) è visibile a tutti i sottoscrittori. Se la cosa vi interessa posso realizzare un post ad hoc sull’argomento. Fatemelo sapere nei commenti.

Finiti i preamboli si va a cominciare…

1. Installazione

  1. Scarica e attiva Pods (ti servirà per collegare file e utenti: “Pods – Tipi di contenuto e campi personalizzati” è un software open source gratuito)
  2. Vai in Gestione pods > Componenti e attiva Migrate: Packages cliccando su “Abilita”
  3. Scarica il plugin Sekiro da GitHub
  4. Carica il file zip da Plugin > Aggiungi nuovo > Carica plugin e attivalo
  5. Crea un file .htaccess in wp-content/uploads per proteggere i tuoi file dall’accesso diretto:
    RewriteEngine On
    RewriteCond %{REQUEST_URI} !^.*doc_allowed.pdf [NC] 
    RewriteCond %{HTTP_COOKIE} !^.*wordpress_logged_in.*$ [NC]
    RewriteRule .*\.(doc|xls|pdf|xlsx|docx|zip)$ https://%{SERVER_NAME}/ [NC]

Queste regole dicono: “Se non è presente un cookie il cui nome contiene la stringa wordpress_logged_in (quindi l’utente non è loggato) o il file richiesto non un file che contiene la stringa doc_allowed.pdf (l’unico file che si consente di scaricare senza essere loggati) qualsiasi richiesta di file doc, xls ecc… redireziona la richiesta alla root”. Attenzione: con queste regole blocchi il download di qualsiasi file dal tuo sito. I file che vuoi lasciare liberi devono essere elencati nell’htaccess con regole simili a quella di esempio “doc_allowed.pdf”.

2. Creazione della pagina per l’area riservata

Crea una nuova pagina in WordPress. Questa pagina sarà la pagina che ospiterà i tuoi file protetti. Nel contenuto della pagina inserisci lo shortcode

[sekiro_area_riservata]

In Impostazioni > Sekiro scegli la pagina appena creata. Vai in Impostazioni > Generali e controlla che sia presente il segno di spunta su “Chiunque può registrarsi” per abilitare la registrazione degli utenti in WordPress.

3. Aggiunta dei documenti all’area riservata

In Documenti > Aggiungi nuovo documento puoi aggiungere i file all’area riservata e decidere quali utenti potranno vederli. Nella lista degli utenti associabili ai file vedrai solo gli utenti “sottoscrittori”.

Visualizzazione dei documenti

Il plugin non imposta nessuno stile di default per la visualizzazione dei documenti, si limita a mostrare titolo, contenuto e link per il download. Per modificare il template e gli stili hai a disposizione questi due file:

wp-content/plugins/sekiro/assets/templates/sekiro.html
wp-content/plugins/sekiro/assets/css/style.css

Complimenti, ha finito!

Gli utenti possono iscriversi all’area riservata dalla pagina https://www.iltuosito.it/wp-login.php?action=register (o puoi registrarli tu dal backend di WordPress). Se gli utenti si registrano da soli per farli accedere dovrai prima promuoverli a “sottoscrittori”.

Rubrica » In 3 2 1, Plugin

Reader Interactions

Lascia un commento Annulla risposta

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

Primary Sidebar

Corso WordPress Advanced

Gli ultimi articoli

  • Come importare contenuti demo per testare il tuo tema
  • Corso WordPress Advanced a Parma
  • Come creare un’area riservata in WordPress in 3… 2… 1…
  • Field Mapper WordPress plugin
  • Rendere i commenti WordPress GDPR compliance in 3… 2… 1

Cosa ti serve?

Il piccolo menu

  • Chi sono
  • Rubriche

SEKIRO

Plugin WordPress che permette la creazione di una pagina riservata per gli utenti registrati. Da questa pagina ogni utente loggato potrà scaricare file dedicati.

Download

Simone Alati © 2016 - Tema Genesis Gaia | Privacy policy
Puoi rilassarti. Questo sito non usa alcun cookie di tracciamento :-)