WordPress: creare una pagina di contatti in AJAX

Un semplice tutorial per creare una pagina di contatti per WordPress con AJAX.

In questo articolo vedremo come realizzare una pagina di contatti per WordPress utilizzando una classe PHP, AJAX e jQuery. Vediamo insieme i dettagli dell’implementazione.

Preparazione

Creiamo questa struttura all’interno del nostro tema:

Inseriremo la classe PHP all’interno della directory contact e il file JavaScript all’interno della directory js. Gli stili CSS andranno nel foglio di stile del tema e il template di pagina direttamente nella directory del tema. Dovremo inoltre aggiungere del codice al nostro file functions.php.

La classe PHP

La nostra classe PHP è Contact.php:

Questa classe valida i dati (in modo elementare) e restituisce come output una stringa contenente un messaggio di avvenuto invio o un elenco di errori a seconda dei casi.

Il template di pagina

L’elaborazione dei dati AJAX deve avvenire prima che venga generato l’output di WordPress. Quindi il nostro template di pagina, chiamato template-contact.php, inizia in questo modo:

Per evitare che la richiesta AJAX faccia duplicare l’output abbiamo utilizzato un parametro POST per capire se la richiesta è fatta da jQuery. Se lo è, viene restituita solo la stringa del metodo Contact::process(), altrimenti viene visualizzata normalmente la pagina.

Il codice jQuery

Il codice jQuery è molto semplice ed è contenuto nel file contact.js:

Dato che PHP controlla se il form è stato inviato usando la variabile POST contact-submit, dobbiamo inserirla nella nostra richiesta, a cui aggiungiamo anche il parametro ajax. L’effetto interessante è il seguente:

In pratica la pagina si sposta con un movimento fluido verso l’alto per mostrare il messaggio restituito dalla richiesta AJAX.

Includere i file JavaScript

Aggiungiamo il seguente codice al file functions.php del nostro tema:

Gli stili CSS

Gli stili CSS vanno inseriti nel foglio di stile principale del nostro tema:

I file del download sono stati localizzati in italiano. Troverete tutte le indicazioni necessarie nei commenti dei file.

Demo

Download

File ZIP