Atenção!

Este artigo contém código PHP e CSS e destina-se a desenvolvedores. Oferecemos este código como uma cortesia, mas não fornecemos suporte para personalizações de código ou desenvolvimento de terceiros.

Para orientação adicional, consulte o tutorial da WPBeginner sobre como adicionar código personalizado e CSS personalizado.

Dispensar

Como Criar um Formulário de Quiz

Gostaria de criar um formulário de quiz no WPForms? O WPForms inclui um Addon de Quiz que oferece tudo o que você precisa para criar formulários de quiz diretamente no construtor de formulários.

Neste tutorial, mostraremos como criar um formulário de quiz usando uma configuração baseada em snippet que calcula e exibe a pontuação do usuário após o envio.

Recomendamos o uso do Addon de Quiz para a maioria dos sites, mas este guia ainda inclui uma opção baseada em snippet para quem prefere essa abordagem.


O WPForms inclui um Addon de Quiz dedicado, que é a maneira mais fácil e completa de criar formulários de quiz.

O Addon de Quiz inclui recursos de quiz integrados e oferece a maneira mais fácil de criar e gerenciar formulários de quiz no WPForms.

Para detalhes completos sobre o método recomendado, consulte nossa documentação do Addon de Quiz.

Se você está começando, também pode navegar por nossos modelos de formulário de quiz para criar rapidamente um quiz e personalizá-lo para o seu site.

Criando o Formulário de Quiz com um Snippet

Se você ainda quiser criar um formulário de quiz com uma configuração personalizada, pode seguir as etapas deste guia e usar o snippet de código abaixo.

Começaremos criando um novo formulário. Em nosso formulário, adicionaremos os campos de formulário Nome e Email no início do formulário. Em seguida, usando Quebras de Página, dividiremos o quiz em 6 categorias. Cada Quebra de Página terá o Título da Página exibindo em qual categoria os participantes do quiz estão atualmente.

comece criando seu formulário e adicionando seus campos. você pode dividir as categorias do quiz adicionando quebras de página entre cada categoria

Para qualquer ajuda na criação do seu formulário, consulte este guia.

Adicionando Perguntas e Pontuações do Quiz

Para esta documentação, usaremos os campos Itens Múltiplos na seção Campos de Pagamento no construtor de formulários para fazer nossa pergunta do quiz e alterar os rótulos, fornecendo 3 respostas para cada pergunta. Para a resposta correta, coloque 1,00 para a resposta correta e 0,00 para as respostas incorretas.

use Múltiplos itens em campos de pagamento para fazer sua pergunta e fornecer 1 resposta correta com um valor em dólar de 1,00 e coloque zero para o valor das respostas incorretas

Continue fazendo isso em suas perguntas e categorias. Cada pergunta deve ter uma resposta com 1,00 para a resposta correta e 0,00 para as respostas incorretas. Usaremos o valor para coletar um total acumulado para cada resposta correta.

Adicionando um Campo Total para Rastrear a Pontuação

Agora queremos rastrear o número total de pontos para cada resposta correta. Para conseguir isso, na parte inferior do formulário, adicionaremos um campo Total. No entanto, daremos a este campo uma Classe CSS na guia Avançado para que possamos manter este campo oculto até que o formulário seja enviado.

adicione o nome da classe CSS na aba Avançado para o campo total

Depois de salvar o formulário, você desejará adicionar o CSS necessário para ocultar este campo. Copie este CSS para o seu site. Se precisar de ajuda para encontrar como e onde adicionar CSS personalizado, consulte este tutorial.

.hide-field {display: none;}

Exibindo a Pontuação do Quiz na Mensagem de Confirmação

Para mostrar aos participantes do quiz a pontuação deles após o envio, adicione o snippet abaixo ao seu site.

Este snippet lê os valores enviados, obtém o nome e a pontuação do usuário e exibe uma mensagem de confirmação com o resultado final.

Copie e cole este snippet no seu site. Se precisar de ajuda sobre como e onde adicionar snippets, consulte este tutorial útil.

/**
 * 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 );

Este snippet só será executado no ID do formulário 3221. Ele obterá o nome do usuário do nosso campo Nome no ID do campo 1 para que possa ser exibido em nossa mensagem de confirmação personalizada. Este snippet, em seguida, obterá o valor do nosso campo de formulário Total, que é o ID do campo 7, removerá o símbolo da moeda e o espaço em branco e converterá o que sobrar em um número inteiro para que não haja ponto decimal ou zeros.

Você precisará atualizar cada um desses IDs para corresponder aos seus próprios IDs de formulário e campo. Para encontrar seus próprios números de ID, consulte esta documentação.

Agora, quando os usuários chegarem ao final do quiz, eles clicarão em Enviar e verão imediatamente quantas respostas eles acertaram.

E é isso! Você gostaria que o formulário fosse enviado automaticamente com base no valor de um dos seus campos? Confira nosso tutorial sobre Como Enviar um Formulário Automaticamente com uma Escolha de Campo.

Filtro de Referência

wpforms_frontend_mensagem_confirmacao