Nonostante le alternative dall’aspetto più moderno e, come dicono quelli bravi, user friendly, reputo Contact Form 7 ancora un valido strumento per la creazione di form su WordPress.
Tra le funzionalità offerte, una utile (e forse poco nota) è quella di poter precompilare i campi all’apertura della pagina che contiene il form.
In questa occasione prendiamo in esame due delle possibili fonti da cui recuperare i dati che saranno inseriti automaticamente:
- l’indirizzo della pagina
- un utente registrato
Per semplicità partiamo dal form di base che si ottiene cliccando sul link “Aggiungi nuovo” posto all’interno della pagina di amministrazione di Contact Form 7.
Il codice del form dovrebbe essere il seguente:
<label> Il tuo nome (richiesto)
[text* your-name] </label>
<label> La tua email (richiesto)
[email* your-email] </label>
<label> Oggetto
[text your-subject] </label>
<label> Il tuo messaggio
[textarea your-message] </label>
[submit "Invia"]
Leggere le informazioni dall’indirizzo della pagina
Supponiamo di avere un sito con molteplici collegamenti alla pagina di contatto e di voler inserire come oggetto del form un testo diverso in base al collegamento utilizzato.
Ad esempio, potremmo avere queste due pagine che puntano al form di contatto:
- una pagina che descrive un servizio di realizzazione siti web
- una pagina che descrive un servizio di consulenza
Partendo dal codice di base del form, modifichiamo il campo Oggetto
<label> Oggetto
[text your-subject] </label>
in questo modo:
<label> Oggetto
[text your-subject default:get] </label>
La differenza è costituita dal parametro default
a cui è assegnato il valore get
.
Con questa configurazione Contact Form 7 cercherà nell’indirizzo della pagina un parametro con lo stesso nome del campo (in questo caso your-subject
) e, se presente, ne userà il valore per precompilare il campo stesso.
Dopo aver preparato il form, non resta che modificare i link alla pagina che lo ospita.
Facendo riferimento alle due pagine di esempio indicate prima avremo:
- nome-sito.it/contatti/?your-subject=Informazioni+nuovo+sito
- nome-sito.it/contatti/?your-subject=Informazioni+consulenza
I due link puntano entrambi alla pagina Contatti, ma ciascuno imposta un diverso testo nel campo Oggetto utilizzando la stringa dopo il carattere =
(utilizza il carattere +
al posto degli spazi tra le parole).
Leggere le informazioni da un utente registrato
Nel caso di siti che prevedano la registrazione, è possibile far risparmiare del tempo agli utenti che utilizzano un form dopo aver fatto il login.
In questa situazione Contact Form è in grado di leggere alcune informazioni dell’account e utilizzarle per precompilare i campi opportunamente configurati.
Per esempio possiamo recuperare il nome completo dell’utente e inserirlo nel campo corrispondente modificandone il codice iniziale
<label> Il tuo nome (richiesto)
[text* your-name] </label>
in questo modo:
<label> Il tuo nome (richiesto)
[text* your-name default:user_display_name] </label>
In questo caso abbiamo assegnato al parametro default
il valore user_display_name
, che corrisponde ad una delle proprietà di un account su WordPress.
Per una lista completa delle informazioni accessibili ti rimando a questa pagina della documentazione ufficiale di Contact Form 7: https://contactform7.com/setting-default-values-to-the-logged-in-user/.