{"id":166623,"date":"2024-05-27T09:00:00","date_gmt":"2024-05-27T08:00:00","guid":{"rendered":"https:\/\/gtechgroup.it\/blog\/cf7-form-avanzati-condizionali-multi-step\/"},"modified":"2026-05-26T10:00:00","modified_gmt":"2026-05-26T08:00:00","slug":"cf7-form-avanzati-condizionali-multi-step","status":"publish","type":"post","link":"https:\/\/gtechgroup.it\/blog\/cf7-form-avanzati-condizionali-multi-step\/","title":{"rendered":"Contact Form 7: Form Avanzati \u2014 Condizionali, Multi-Step e File Upload"},"content":{"rendered":"<h2>Oltre il Modulo di Contatto Base: Funzionalita Avanzate<\/h2>\n<p>Contact Form 7, nella sua configurazione standard, offre tutto il necessario per creare moduli di contatto funzionali. Tuttavia, le esigenze dei siti web moderni spesso vanno oltre il semplice modulo nome-email-messaggio. Potresti aver bisogno di mostrare o nascondere campi in base alle risposte del visitatore, dividere un modulo lungo in piu passaggi per migliorare la esperienza utente, permettere il caricamento di documenti o implementare meccanismi di tracciamento avanzato. In questa guida esploreremo tutte queste funzionalita avanzate, utilizzando plugin complementari e tecniche che estendono le capacita di Contact Form 7 ben oltre le sue funzioni native.<\/p>\n<p>Ogni funzionalita descritta in questa guida e stata testata e verificata per la compatibilita con le versioni piu recenti di Contact Form 7. Tuttavia, quando utilizzi plugin di terze parti, verifica sempre la compatibilita con la tua versione specifica di WordPress e Contact Form 7.<\/p>\n<h2>Campi Condizionali con Conditional Fields<\/h2>\n<p>I campi condizionali ti permettono di mostrare o nascondere sezioni del modulo in base alle risposte del visitatore. Ad esempio, se un visitatore seleziona &#8220;Azienda&#8221; come tipo di contatto, puoi mostrare campi aggiuntivi come &#8220;Ragione Sociale&#8221;, &#8220;Partita IVA&#8221; e &#8220;Numero Dipendenti&#8221; che non sarebbero rilevanti per un privato.<\/p>\n<h3>Installazione del Plugin<\/h3>\n<p>Installa il plugin <strong>Conditional Fields for Contact Form 7<\/strong> dalla bacheca di WordPress (Plugin &gt; Aggiungi nuovo &gt; cerca &#8220;Conditional Fields for Contact Form 7&#8221;). Dopo la attivazione, avrai un nuovo pulsante &#8220;Conditional fields Group&#8221; nella barra dei tag del editor di Contact Form 7.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/gtechgroup.it\/blog\/wp-content\/uploads\/2026\/05\/04-edit-form.png\" alt=\"Editor Contact Form 7 con campi condizionali e configurazione avanzata del modulo\" \/><\/p>\n<h3>Creare Gruppi Condizionali<\/h3>\n<p>La struttura di un campo condizionale si basa su tre elementi: un campo trigger (che attiva la condizione), un gruppo condizionale (i campi che vengono mostrati o nascosti) e una regola (la condizione che deve essere soddisfatta). Ecco un esempio pratico:<\/p>\n<pre><code>&lt;label&gt;Tipo di contatto\n    [select your-type \"Privato\" \"Azienda\" \"Ente pubblico\"]&lt;\/label&gt;\n\n[group azienda]\n    &lt;label&gt;Ragione Sociale\n        [text* company-name]&lt;\/label&gt;\n\n    &lt;label&gt;Partita IVA\n        [text* vat-number]&lt;\/label&gt;\n\n    &lt;label&gt;Settore\n        [select company-sector \"Tecnologia\" \"Commercio\" \"Servizi\" \"Manifattura\" \"Altro\"]&lt;\/label&gt;\n[\/group]\n\n[group ente]\n    &lt;label&gt;Nome Ente\n        [text* ente-name]&lt;\/label&gt;\n\n    &lt;label&gt;Codice CIG\/CUP\n        [text cig-cup]&lt;\/label&gt;\n[\/group]<\/code><\/pre>\n<p>Dopo aver inserito i gruppi nel template, clicca sulla scheda <strong>Conditional Fields<\/strong> (aggiunta dal plugin) per configurare le regole. Creerai regole come: &#8220;Mostra il gruppo [azienda] quando il campo [your-type] e uguale a Azienda&#8221; e &#8220;Mostra il gruppo [ente] quando il campo [your-type] e uguale a Ente pubblico&#8221;.<\/p>\n<p>I campi condizionali migliorano notevolmente la esperienza utente perche il visitatore vede solo i campi rilevanti per la sua situazione, rendendo il modulo piu corto e meno intimidatorio. Inoltre, i campi nascosti non vengono validati, quindi non bloccheranno la invio del modulo.<\/p>\n<h2>Moduli Multi-Step: Dividere in Piu Passaggi<\/h2>\n<p>I moduli lunghi con molti campi possono scoraggiare i visitatori. La soluzione e dividerli in piu passaggi (step), mostrando pochi campi alla volta con una barra di avanzamento che indica quanti passaggi mancano al completamento.<\/p>\n<h3>Installazione del Plugin Multi-Step<\/h3>\n<p>Installa il plugin <strong>Contact Form 7 Multi-Step Forms<\/strong> dalla bacheca di WordPress. Questo plugin permette di creare una sequenza di moduli CF7 che funzionano come passaggi di un unico processo.<\/p>\n<h3>Configurazione dei Passaggi<\/h3>\n<p>Il principio e creare moduli CF7 separati per ogni passaggio e collegarli tra loro. Ogni modulo (tranne la ultimo) termina con un pulsante &#8220;Avanti&#8221; invece del classico &#8220;Invia&#8221;, e i dati vengono passati al passaggio successivo tramite campi nascosti.<\/p>\n<p><strong>Passaggio 1 \u2014 Dati Personali:<\/strong><\/p>\n<pre><code>&lt;label&gt;Nome [text* your-name]&lt;\/label&gt;\n&lt;label&gt;Email [email* your-email]&lt;\/label&gt;\n&lt;label&gt;Telefono [tel your-phone]&lt;\/label&gt;\n\n[previous \"Indietro\"][next \"Avanti\"]<\/code><\/pre>\n<p><strong>Passaggio 2 \u2014 Dettagli Richiesta:<\/strong><\/p>\n<pre><code>&lt;label&gt;Servizio richiesto\n    [select* your-service \"Web Design\" \"SEO\" \"Social Media\" \"App Mobile\"]&lt;\/label&gt;\n&lt;label&gt;Budget indicativo\n    [select your-budget \"Meno di 1.000 euro\" \"1.000 - 5.000 euro\" \"5.000 - 10.000 euro\" \"Oltre 10.000 euro\"]&lt;\/label&gt;\n\n[previous \"Indietro\"][next \"Avanti\"]<\/code><\/pre>\n<p><strong>Passaggio 3 \u2014 Messaggio e Invio:<\/strong><\/p>\n<pre><code>&lt;label&gt;Descrivi il tuo progetto\n    [textarea* your-message]&lt;\/label&gt;\n&lt;label&gt;Allega documenti [file your-file limit:10mb filetypes:pdf|doc|docx]&lt;\/label&gt;\n\n[acceptance your-consent] Accetto la privacy policy [\/acceptance]\n\n[previous \"Indietro\"][submit \"Invia Richiesta\"]<\/code><\/pre>\n<p>I moduli multi-step sono particolarmente efficaci per richieste di preventivo, registrazioni a eventi, candidature lavorative e qualsiasi scenario in cui e necessario raccogliere molte informazioni senza sovraccaricare il visitatore.<\/p>\n<h2>File Upload: Configurazione Avanzata<\/h2>\n<p>Il caricamento di file e una funzionalita richiesta in molti contesti: invio di curriculum, documenti aziendali, immagini di riferimento o specifiche di progetto. Contact Form 7 supporta il file upload nativamente con il tag <code>[file]<\/code>, ma richiede una configurazione attenta per funzionare in modo sicuro e affidabile.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/gtechgroup.it\/blog\/wp-content\/uploads\/2026\/05\/03-new-form.png\" alt=\"Creazione modulo Contact Form 7 con configurazione del campo file upload\" \/><\/p>\n<h3>Configurazione del Tag File<\/h3>\n<pre><code>[file your-document limit:10mb filetypes:pdf|doc|docx|xls|xlsx|jpg|png]<\/code><\/pre>\n<p>I parametri principali sono:<\/p>\n<ul>\n<li><code>limit<\/code> \u2014 dimensione massima del file. Puoi specificare in bytes, kb o mb. Il valore massimo dipende dalle impostazioni PHP del tuo server (<code>upload_max_filesize<\/code> e <code>post_max_size<\/code>)<\/li>\n<li><code>filetypes<\/code> \u2014 tipi di file accettati, separati dal simbolo pipe. Per sicurezza, non accettare mai file eseguibili (.exe, .php, .js) o archivi compressi (.zip, .rar) a meno che non sia strettamente necessario<\/li>\n<\/ul>\n<h3>Allegare il File alla Email<\/h3>\n<p>Per ricevere il file allegato nella email di notifica, aggiungi il nome del campo nel campo <strong>Allegati<\/strong> della scheda Email:<\/p>\n<pre><code>[your-document]<\/code><\/pre>\n<p>Se non aggiungi il mail-tag nel campo Allegati, il file verra caricato sul server ma non verra allegato alla email. I file caricati vengono salvati temporaneamente nella cartella <code>wp-content\/uploads\/wpcf7_uploads\/<\/code> e vengono eliminati automaticamente dopo la invio della email.<\/p>\n<h3>Upload Multiplo<\/h3>\n<p>Per permettere il caricamento di piu file, aggiungi semplicemente piu tag file al modulo:<\/p>\n<pre><code>[file your-file-1 limit:5mb filetypes:pdf|jpg|png]\n[file your-file-2 limit:5mb filetypes:pdf|jpg|png]\n[file your-file-3 limit:5mb filetypes:pdf|jpg|png]<\/code><\/pre>\n<p>E aggiungi tutti i mail-tag nel campo Allegati della email, uno per riga.<\/p>\n<h2>Menu a Tendina Dinamici<\/h2>\n<p>In alcuni casi potresti aver bisogno di menu a tendina il cui contenuto cambia dinamicamente, ad esempio caricando le opzioni dal database o da una fonte esterna. Il plugin <strong>Contact Form 7 \u2014 Dynamic Text Extension<\/strong> ti permette di creare campi il cui valore predefinito viene generato dinamicamente tramite shortcode di WordPress.<\/p>\n<pre><code>[dynamicselect your-products \"CF7_get_products\"]<\/code><\/pre>\n<p>Dove <code>CF7_get_products<\/code> e uno shortcode personalizzato che restituisce le opzioni del menu. Questa tecnica e utile per moduli collegati a cataloghi prodotti, listini prezzi o qualsiasi dato che cambia frequentemente.<\/p>\n<h2>Checkbox di Accettazione per il GDPR<\/h2>\n<p>La conformita al GDPR (Regolamento Generale sulla Protezione dei Dati) richiede che il visitatore acconsenta esplicitamente al trattamento dei propri dati personali prima di inviare un modulo. Contact Form 7 offre il tag <code>[acceptance]<\/code> specificamente per questo scopo:<\/p>\n<pre><code>[acceptance your-consent] Ho letto e accetto la &lt;a href=\"\/privacy-policy\/\" target=\"_blank\"&gt;Privacy Policy&lt;\/a&gt; e acconsento al trattamento dei miei dati personali ai sensi del Regolamento UE 2016\/679 (GDPR). [\/acceptance]<\/code><\/pre>\n<p>Quando la casella di accettazione non e selezionata, il pulsante di invio rimane disabilitato. Puoi aggiungere piu caselle di accettazione per consensi diversi (ad esempio, una per la privacy e una per la newsletter):<\/p>\n<pre><code>[acceptance consent-privacy] Acconsento al trattamento dei dati per rispondere alla mia richiesta (obbligatorio). [\/acceptance]\n\n[acceptance consent-newsletter optional] Desidero ricevere aggiornamenti e offerte via email (facoltativo). [\/acceptance]<\/code><\/pre>\n<p>La opzione <code>optional<\/code> rende la casella facoltativa, non bloccando la invio del modulo se non selezionata. Il valore della casella (selezionata o meno) viene inviato nella email tramite il mail-tag corrispondente, permettendoti di sapere quali consensi sono stati dati.<\/p>\n<h2>Campi Nascosti per il Tracciamento UTM<\/h2>\n<p>I campi nascosti sono strumenti preziosi per il tracciamento delle campagne di marketing. Puoi catturare automaticamente i parametri UTM dalla URL e includerli nella email di notifica:<\/p>\n<pre><code>[hidden utm_source default:get]\n[hidden utm_medium default:get]\n[hidden utm_campaign default:get]\n[hidden utm_content default:get]\n[hidden landing_page default:shortcode_attr]<\/code><\/pre>\n<p>Con questa configurazione, se un visitatore arriva al tuo sito tramite una campagna Google Ads con la URL <code>tuosito.it\/contatti\/?utm_source=google&amp;utm_medium=cpc&amp;utm_campaign=primavera2024<\/code>, questi parametri verranno automaticamente inclusi nella email di notifica. Puoi poi utilizzare questi dati nella scheda Email:<\/p>\n<pre><code>--- Tracciamento Campagna ---\nFonte: [utm_source]\nMezzo: [utm_medium]\nCampagna: [utm_campaign]\nContenuto: [utm_content]\nPagina di atterraggio: [landing_page]<\/code><\/pre>\n<p>Queste informazioni sono fondamentali per misurare il ROI delle campagne pubblicitarie e capire da quale canale provengono le richieste piu qualificate. Per una integrazione ancora piu avanzata con strumenti di marketing, consulta la <a href=\"https:\/\/gtechgroup.it\/blog\/cf7-integrazioni-mailchimp-crm-zapier\/\">guida alle integrazioni con CRM e Zapier<\/a>.<\/p>\n<h2>Pipeline e Valori Personalizzati<\/h2>\n<p>La tecnica delle pipeline ti permette di mostrare un testo diverso al visitatore rispetto al valore che viene inviato via email. Questo e utile per menu a tendina dove desideri valori interni diversi da quelli visualizzati:<\/p>\n<pre><code>[select your-priority \"Bassa (risposta entro 5 giorni)|low\" \"Media (risposta entro 48 ore)|medium\" \"Alta (risposta entro 24 ore)|high\" \"Urgente (risposta entro 4 ore)|urgent\"]<\/code><\/pre>\n<p>Il visitatore vede le descrizioni complete, ma nella email riceverai i codici brevi (low, medium, high, urgent), facilitando la categorizzazione automatica delle richieste nel tuo sistema di gestione.<\/p>\n<h2>Redirect Dopo la Invio del Modulo<\/h2>\n<p>In alcuni casi potresti voler reindirizzare il visitatore a una pagina di ringraziamento dedicata dopo la invio del modulo. Questo e utile per il tracciamento delle conversioni (Google Ads, Facebook Pixel) e per offrire contenuti aggiuntivi. Aggiungi il seguente codice nella scheda <strong>Impostazioni Aggiuntive<\/strong> del modulo:<\/p>\n<pre><code>on_sent_ok: \"window.location = \"\/grazie\/\";\"<\/code><\/pre>\n<p>Nota: questa funzionalita e stata deprecata nelle versioni recenti di CF7. La alternativa consigliata e utilizzare il evento JavaScript DOM <code>wpcf7mailsent<\/code> nel tuo tema o in un plugin personalizzato.<\/p>\n<h2>Guide Correlate della Serie Contact Form 7<\/h2>\n<ul>\n<li><a href=\"https:\/\/gtechgroup.it\/blog\/cf7-installare-configurare-wordpress\/\">Come Installare e Configurare Contact Form 7 su WordPress<\/a><\/li>\n<li><a href=\"https:\/\/gtechgroup.it\/blog\/cf7-creare-form-contatto-passo-passo\/\">Creare un Form di Contatto Perfetto Passo Passo<\/a><\/li>\n<li><a href=\"https:\/\/gtechgroup.it\/blog\/cf7-tutti-tag-campi-guida-completa\/\">Tutti i Tag e Campi \u2014 Guida Completa<\/a><\/li>\n<li><a href=\"https:\/\/gtechgroup.it\/blog\/cf7-configurare-email-notifiche-smtp\/\">Configurare Email, Notifiche e SMTP<\/a><\/li>\n<li><a href=\"https:\/\/gtechgroup.it\/blog\/cf7-validazione-campi-messaggi-errore\/\">Validazione Campi, Messaggi di Errore e Conferma<\/a><\/li>\n<li><a href=\"https:\/\/gtechgroup.it\/blog\/cf7-protezione-spam-recaptcha-honeypot\/\">Protezione Spam con reCAPTCHA, Honeypot e Quiz<\/a><\/li>\n<li><a href=\"https:\/\/gtechgroup.it\/blog\/cf7-form-avanzati-condizionali-multi-step\/\">Form Avanzati \u2014 Condizionali, Multi-Step e File Upload<\/a><\/li>\n<li><a href=\"https:\/\/gtechgroup.it\/blog\/cf7-integrazioni-mailchimp-crm-zapier\/\">Integrazioni con Mailchimp, CRM e Zapier<\/a><\/li>\n<li><a href=\"https:\/\/gtechgroup.it\/blog\/cf7-styling-css-personalizzare-aspetto\/\">Personalizzare lo Stile con CSS \u2014 Guida Design<\/a><\/li>\n<li><a href=\"https:\/\/gtechgroup.it\/blog\/cf7-problemi-comuni-email-non-arrivano\/\">Email Non Arrivano? Problemi Comuni e Soluzioni<\/a><\/li>\n<\/ul>\n<p>Per la creazione di moduli avanzati e personalizzati, il team di <a href=\"https:\/\/gtechgroup.it\/realizzazione-siti-web\/\">G Tech Group<\/a> offre soluzioni su misura per ogni esigenza. <a href=\"https:\/\/gtechgroup.it\/contatti\/\">Contattaci<\/a> per discutere il tuo progetto.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Oltre il Modulo di Contatto Base: Funzionalita Avanzate Contact Form 7, nella sua configurazione standard, offre tutto il necessario per creare moduli di contatto funzionali.&hellip;<\/p>\n","protected":false},"author":2,"featured_media":166615,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_seopress_robots_primary_cat":"","_seopress_titles_title":"CF7 Avanzato: Condizionali e Multi-Step [2026]","_seopress_titles_desc":"Form avanzati con Contact Form 7: campi condizionali, multi-step, file upload, GDPR checkbox e hidden fields.","_seopress_robots_index":"","footnotes":""},"categories":[61],"tags":[2776,2779,2777,2778],"class_list":["post-166623","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-wordpress","tag-cf7-avanzato","tag-file-upload","tag-form-condizionali","tag-multi-step-form"],"_links":{"self":[{"href":"https:\/\/gtechgroup.it\/blog\/wp-json\/wp\/v2\/posts\/166623","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/gtechgroup.it\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/gtechgroup.it\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/gtechgroup.it\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/gtechgroup.it\/blog\/wp-json\/wp\/v2\/comments?post=166623"}],"version-history":[{"count":0,"href":"https:\/\/gtechgroup.it\/blog\/wp-json\/wp\/v2\/posts\/166623\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/gtechgroup.it\/blog\/wp-json\/wp\/v2\/media\/166615"}],"wp:attachment":[{"href":"https:\/\/gtechgroup.it\/blog\/wp-json\/wp\/v2\/media?parent=166623"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/gtechgroup.it\/blog\/wp-json\/wp\/v2\/categories?post=166623"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/gtechgroup.it\/blog\/wp-json\/wp\/v2\/tags?post=166623"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}