Atenção!

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

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

Dispensar

Como criar um formulário de questionário

Gostaria de criar um formulário de questionário no WPForms? O WPForms inclui um complemento de questionário que oferece tudo o que você precisa para criar formulários de questionário diretamente no criador de formulários.

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

Recomendamos o uso do complemento Quiz para a maioria dos sites, mas este guia ainda inclui uma opção baseada em snippets para quem preferir essa abordagem.


O WPForms inclui um complemento dedicado para questionários, que é a maneira mais fácil e completa de criar formulários de questionários.

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

Para obter detalhes completos sobre o método recomendado, consulte a documentação do nosso complemento Quiz.

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

Criando o formulário do questionário com um snippet

Se você ainda deseja criar um formulário de questionário com uma configuração personalizada, siga as etapas deste guia e use o trecho de código abaixo.

Vamos começar criando um novo formulário. Em nosso formulário, adicionaremos os campos de formulário Nome e E-mail no início do formulário. Em seguida, usando Page Breaks, dividiremos o questionário em 6 categorias. Em cada quebra de página, teremos o título da página exibindo a categoria em que os participantes do questionário estão no momento.

Comece criando seu formulário e adicione seus campos. Você pode dividir as categorias do questionário adicionando quebras de página entre cada categoria.

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

Adicionando perguntas e pontuações do questionário

Para esta documentação, usaremos os campos Multiple Items (Vários itens ) na seção Payment Fields (Campos de pagamento ) no construtor de formulários para fazer a pergunta do questionário 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 os campos Múltiplos itens sob pagamento para fazer sua pergunta e fornecer 1 resposta correta com um valor em dólar de 1,00 e coloque um 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 obter um total acumulado para cada resposta correta.

Adicionando um campo total para acompanhar a pontuação

Agora, queremos rastrear o número total de pontos para cada resposta correta. Para isso, na parte inferior do formulário, adicionaremos um campo Total. No entanto, daremos a esse campo uma classe CSS na guia Advanced para que possamos mantê-lo oculto até que o formulário seja enviado.

Adicione o nome da classe CSS na guia Advanced para o campo total

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

.hide-field {display: none;}

Exibindo a pontuação do questionário na mensagem de confirmação

Para mostrar aos participantes do questionário a sua pontuação após o envio, adicione o trecho abaixo ao seu site.

Este trecho 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 esse snippet em seu site. Se precisar de ajuda para saber como e onde adicionar snippets, consulte este útil 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 );

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

Você precisará atualizar cada um desses IDs para que correspondam 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 questionário, eles clicarão em Enviar e poderão ver imediatamente quantas respostas acertaram.

E é isso! Você gostaria que o formulário fosse enviado automaticamente com base no valor de um dos campos do formulário? Confira nosso tutorial sobre Como enviar automaticamente um formulário com uma opção de campo.

Filtro de referência

wpforms_frontend_confirmation_message