Attenzione!

Questo articolo contiene codice PHP e CSS ed è destinato agli sviluppatori. Offriamo questo codice come cortesia, ma non forniamo supporto per le personalizzazioni del codice o per lo sviluppo di terze parti.

Per maggiori informazioni, consultare il tutorial di WPBeginner sull'aggiunta di codice personalizzato e CSS personalizzato.

Congedo

Come creare un modulo Quiz

Ti piacerebbe creare un modulo quiz in WPForms? WPForms include un add-on Quiz che ti offre tutto ciò di cui hai bisogno per creare moduli quiz direttamente nel generatore di moduli.

In questo tutorial ti mostreremo come creare un modulo quiz utilizzando una configurazione basata su snippet che calcola e visualizza il punteggio dell'utente dopo l'invio.

Consigliamo di utilizzare l'add-on Quiz per la maggior parte dei siti, ma questa guida include comunque un'opzione basata su snippet per chi preferisce questo approccio.


WPForms include un add-on dedicato ai quiz, che rappresenta il modo più semplice e completo per creare moduli di quiz.

L'add-on Quiz include funzionalità di quiz integrate e offre il modo più semplice per creare e gestire moduli di quiz in WPForms.

Per tutti i dettagli sul metodo consigliato, consulta la documentazione relativa al nostro add-on Quiz.

Se sei alle prime armi, puoi anche sfogliare i nostri modelli di moduli quiz per crearne uno rapidamente e personalizzarlo per il tuo sito.

Creazione del modulo quiz con uno snippet

Se desideri comunque creare un modulo quiz con una configurazione personalizzata, puoi seguire i passaggi indicati in questa guida e utilizzare il frammento di codice riportato di seguito.

Inizieremo creando un nuovo modulo. Nel nostro modulo, aggiungeremo i campi Nome e Email all'inizio del modulo. Quindi, utilizzando le interruzioni di pagina, suddivideremo il quiz in 6 categorie. In ogni interruzione di pagina il titolo della pagina mostrerà la categoria in cui si trovano attualmente i partecipanti al quiz.

Si può iniziare creando il modulo e aggiungendo i campi. si possono suddividere le categorie dei quiz aggiungendo delle interruzioni di pagina tra una categoria e l'altra.

Per qualsiasi aiuto nella creazione del modulo, consultare questa guida.

Aggiunta di domande e punteggi del quiz

Per questa documentazione, utilizzeremo i campi Multiple Items nella sezione Payment Fields del costruttore di moduli per porre le domande del quiz e cambiare le etichette fornendo 3 risposte per ogni domanda. Per la risposta corretta, inserire un 1,00 per la risposta corretta e 0,00 per le risposte errate.

utilizzare le voci multiple sotto i campi di pagamento per porre la domanda e fornire 1 risposta corretta con un importo in dollari di 1,00 e inserire uno zero per l'importo delle risposte errate

Continuate a farlo attraverso le domande e le categorie. Ogni domanda deve avere una risposta con un 1,00 per la risposta corretta e 0,00 per le risposte errate. Utilizzeremo l'importo per raccogliere un totale progressivo per ogni risposta corretta.

Aggiunta di un campo totale per tenere traccia del punteggio

Ora vogliamo tenere traccia del numero totale di punti per ogni risposta corretta. Per questo, in fondo al modulo, aggiungeremo un campo Totale. Tuttavia, assegneremo a questo campo una classe CSS nella scheda Avanzate, in modo da tenerlo nascosto alla vista fino all'invio del modulo.

aggiungere il nome della classe CSS nella scheda Avanzate per il campo totale

Una volta salvato il modulo, si dovrà aggiungere il CSS necessario per nascondere questo campo. Copiate il CSS nel vostro sito. Se avete bisogno di aiuto per capire come e dove aggiungere i CSS personalizzati, consultate questo tutorial.

.hide-field {display: none;}

Visualizzazione del punteggio del quiz nel messaggio di conferma

Per mostrare ai partecipanti al quiz il loro punteggio dopo l'invio, aggiungi il seguente snippet al tuo sito.

Questo snippet legge i valori inviati, ottiene il nome e il punteggio dell'utente e visualizza un messaggio di conferma con il risultato finale.

Copiate e incollate questo snippet sul vostro sito; se avete bisogno di aiuto per capire come e dove aggiungere gli snippet, consultate questo utile tutorial.

/**
 * Display a custom confirmation message for our pub quiz.
 *
 * @link   https://wpforms.com/developers/how-to-create-a-quiz-form/
 */
   
function wpf_dev_quiz_custom_confirmation_message( $message, $form_data, $fields, $entry_id ) {
       
    // Only run on my form with ID = 3221
    if ( absint( $form_data[ 'id' ] ) !== 3221 ) {
            return $message;
        } 
   
    // Get the name of the person who completed this form
    $contact_name = $fields[ '1' ][ 'value' ];
            
    // Get the points from the total field (field ID '7') to remove any decimals and currency symbols
    $points_scored = $fields[ '7' ][ 'value' ];
  
    // Remove white space and currency symbol
    list($points_scored) = explode('.', $points_scored);
    $points_scored = substr($points_scored, 5);
     
       
    // Add the name and points scored to the message
    $message = __('Thanks ' . $contact_name .  ' you scored ' . $points_scored . ' out of a possible 35 points', 'plugin-domain');
      
    return $message;
        
}
add_filter( 'wpforms_frontend_confirmation_message', 'wpf_dev_quiz_custom_confirmation_message', 10, 4 );

Questo snippet verrà eseguito solo sul modulo ID 3221. Prenderà il nome dell'utente dal nostro campo Nome nel campo ID 1, in modo da poterlo visualizzare nel nostro messaggio di conferma personalizzato. Questo snippet prenderà quindi l'importo dal campo Totale del modulo, che è l'ID del campo 7, rimuoverà il simbolo di valuta e gli spazi bianchi e convertirà ciò che rimane in un numero intero, senza punto decimale o zeri.

È necessario aggiornare ciascuno di questi ID in modo che corrispondano agli ID dei propri moduli e campi. Per trovare i propri numeri ID, consultare questa documentazione.

Ora, quando gli utenti arrivano alla fine del quiz, fanno clic su Invia e possono vedere immediatamente quante risposte hanno ottenuto correttamente.

E questo è tutto! Volete che il modulo venga inviato automaticamente in base al valore di uno dei vostri campi? Consultate il nostro tutorial su Come inviare automaticamente un modulo con una scelta di campo.

Filtro di riferimento

wpforms_frontend_confirmation_message