Atenção!

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

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

Recusar

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 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 utilizador após o envio.

Recomendamos usar o 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 funcionalidades de questionário integradas e oferece a maneira mais fácil de criar e gerir 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 está a começar, 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 ainda quiser criar um formulário de questionário com uma configuração personalizada, pode seguir os passos deste guia e usar o trecho de código abaixo.

Vamos começar por criar um novo formulário. No nosso formulário, vamos adicionar os campos de formulário Nome e E-mail no início do formulário. Depois, usando quebras de página, vamos dividir 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 atualmente.

Comece por criar o seu formulário e adicione os seus campos. Pode dividir as categorias do questionário adicionando quebras de página entre cada categoria

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

Adicionar perguntas e pontuações ao questionário

Para esta documentação, vamos utilizar os campos Vários itens na secção Campos de pagamento no criador de formulários para fazer a nossa pergunta de questionário e alterar as etiquetas, fornecendo 3 respostas para cada pergunta. Para a resposta correta, coloque 1,00 para a resposta correta e 0,00 para as respostas incorrectas.

utilize os campos Múltiplos itens sob pagamento para fazer a sua pergunta e dar 1 resposta correta com um montante em dólares de 1,00 e colocar um zero para o montante das respostas incorrectas

Continue a fazer isto através das suas perguntas e categorias. Cada pergunta deve ter uma resposta com 1,00 para a resposta correta e 0,00 para as respostas incorrectas. Utilizaremos o valor para obter um total de cada resposta correta.

Adicionar um campo total para acompanhar a pontuação

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

adicionar o nome da classe CSS no separador Avançadas para o campo total

Depois de guardar o formulário, deve adicionar o CSS necessário para ocultar este campo. Copie este CSS para o 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 utilizador e exibe uma mensagem de confirmação com o resultado final.

Copie e cole este snippet no 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 );

Este snippet só será executado no formulário ID 3221. Vai buscar o nome do utilizador ao nosso campo Nome no campo ID 1 para que possa ser apresentado na nossa mensagem de confirmação personalizada. Em seguida, este snippet pega no valor do nosso campo Total do formulário, que é o campo ID 7, remove o símbolo da moeda e o espaço em branco e converte o que resta num número inteiro para que não haja um ponto decimal ou zeros.

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

Agora, quando os utilizadores chegam ao fim do questionário, clicam em Enviar e podem ver imediatamente quantas respostas acertaram.

E já está! Gostaria que o formulário fosse enviado automaticamente com base no valor de um dos seus campos de formulário? Consulte o nosso tutorial sobre Como enviar automaticamente um formulário com uma opção de campo.

Filtro de referência

wpforms_frontend_confirmation_message