Creare un’area personale su un sito web consente di creare una sezione nascosta al normale pubblico, riservata agli iscritti o ai membri. Ci sono diversi modi per raggiungere questo scopo usando un sito WordPress, ma oggi ve ne mostreremo uno molto flessibile, che comprende anche la funzionalità di login con AJAX.
Creare un’area personale: plugin necessari
Sono innanzitutto necessari 4 plugin da scaricare e installare, tutti nella loro versione gratuita:
A questo punto occorre passare alla loro configurazione. Iniziamo da WP Customer Area, che è molto potente ma non proprio intuitivo. Per fortuna il processo di installazione è lineare, e alla fine verranno create una serie di pagine WordPress, visualizzabili come al solito da Pagine -> Tutte le pagine.
All’interno di ciascuna pagina, sarà presente uno shortcode apposito, creato dal plugin WP Customer Area. Non toccatelo! Attenzione: questa guida non copre il funzionamento di questo plugin, per quello vi rimandiamo alla guida ufficiale.
La gestione del login in PHP
Passiamo alla creazione del codice PHP che permette il login: dal menu di sinistra selezionate Woody Snippets -> Add snippet
Aggiungete un nuovo snippet PHP dandogli un titolo a scelta, ad esempio “Redirect login” e inserite questo codice:
if ( is_user_logged_in() ) {
if (!headers_sent())
{
header('Location: https://sito.it/area-membri/bacheca/');
exit;
}
else
{
echo '<script type="text/javascript">';
echo 'window.location.href="https://sito.it/area-membri/bacheca/";';
echo '</script>';
echo '<noscript>';
echo '<meta http-equiv="refresh" content="0;url=https://sito.it/area-membri/bacheca/" />';
echo '</noscript>'; exit;
}
} else {
echo do_shortcode('[lwa remember="0"]');
}
IMPORTANTE: sostituite sito.it con il vostro sito web!
Analizziamo in breve questo codice: utilizza la funzione is_user_logged_in di WordPress per capire se siamo loggati o meno. Se lo siamo, allora si viene rimandati all’area membri, in alternativa fa comparire a video lo shortcode del plugin Login With Ajax (è quello che inizia per lwa).
Non dovrete creare questo shortcode, è già disponibile di default all’interno del plugin! L’attributo remember=”0″ evita che compaia il link di recupero password. Se invece volete farlo comparire, impostatelo a 1.
Dopo aver creato lo snippet PHP, salvatelo e vi sarà generato uno shortcode che inizia con wbcr_php_snippet.
Creazione pagina di accesso
Andiamo avanti: dovrete creare una pagina di accesso, in cui inserire questo shortcode appena generato. Dal menu di sinistra, selezionate Pagine -> Aggiungi pagina, chiamatela Area membri – accesso e inserite lo shortcode del codice PHP generato dal plugin Woody ad snippets.
IMPORTANTE: non è detto che anche il vostro shortcode abbia id=”983″. Conviene fare copia-incolla del vostro.
IMPORTANTE: se in fase di salvataggio vi viene restituito l’errore “La risposta non è una risposta JSON valida”, installate il plugin Classic Editor e riprovate!
A questo punto siamo quasi alla fine: aggiungete la pagina Area membri – accesso al vostro menu di navigazione (se potete, modificatene l’etichetta in “Area membri“, poichè rimarrà in essere anche quando l’accesso è stato eseguito…) e verifichiamo che tutto funzioni: visualizzando la pagina dovrebbe comparire il modulo di login come quello mostrato qui sotto:
Cliccando sul tasto accedi, dovrebbe entrare in gioco AJAX (grazie al plugin Login With Ajax) il quale, senza ricaricare la pagina, vi porterà alla vostra area personale sul sito.
Volendo è anche possibile personalizzare la pagina di destinazione dopo il login tra le opzioni di Login With Ajax.
Area membri con WordPress: il logout
A questo punto, l’ultima operazione da compiere è permettere agli utenti loggati di poter effettuare il logout quando necessario. Per fortuna, il plugin WP Customer Area mette a disposizione una pagina di logout già pronta, il problema è che non viene visualizzata. Andrebbe aggiunta al menu, magari come sotto-voce di “Area membri“, il problema è che verrebbe visualizzata anche quando un utente non è loggato, perdendo completamente di significato.
Per questo ci viene in aiuto il plugin IF Menu, che permette di visualizzare una voce di menu soltanto quando si verifica una certa condizione. Nel nostro caso, la condizione dev’essere il login effettuato dall’utente!
Portiamoci quindi all’interno del menu la pagina Logout generata da WP Customer Area, mettiamola come sottoelemento di Area membri, e abilitiamo l’opzione “Enable visibility rules“. Occorre creare una regola tale per cui la voce viene visualizzata (Show) soltanto quando l’utente è loggato (Is logged in). Infine, salviamo il menu.
Verifichiamo cosa succede: dopo aver effettuato il login dalla voce di menu “Area membri”, comparirà il menu a tendina “Logout” al di sotto di essa!
Di default, la funzionaltà di logout rimanda alla pagina di login. Se volete cambiargli destinazione, ad esempio verso la home page, impostatela dalle opzioni di Login With Ajax.
Conclusione: area membri con WordPress
Oggi abbiamo imparato a creare un’area personale con WordPress, con login in AJAX e logout condizionale. E voi avete mai avuto bisogno di fare qualcosa di simile?