Resumo da IA
Introdução
Está interessado em comparar dois campos de tempo no seu formulário e registar a diferença calculada na sua entrada? Não precisa de procurar mais! Este tutorial foi feito sob medida para você. Iremos guiá-lo através do processo de configuração do seu formulário e fornecer-lhe o snippet PHP necessário para implementar esta funcionalidade no seu site.
Criar o formulário
Para começar, vamos criar um novo formulário e configurar os nossos campos. Neste guia, vamos criar um formulário especificamente para reservar salões de festas. O nosso snippet utilizará um campo oculto para calcular e anexar automaticamente o total de horas reservadas à entrada. Esta funcionalidade é particularmente útil para a equipa de contabilidade, fornecendo uma visão geral simples para a faturação.
Se não estiver familiarizado com a criação de formulários, pode consultar esta documentação para obter ajuda.
Na configuração do nosso formulário, incluiremos campos padrão como Nome, E-mail, Endereço e Telefone. Além disso, vamos incorporar um campo Dropdown para seleção do quarto, um campo Data para a data da reserva, dois campos Hora para especificar as horas de início e fim da reserva e, finalmente, um Campo Oculto final para armazenar o total de horas calculado utilizando o nosso snippet.

Adicionar o snippet
Em seguida, vamos adicionar o snippet ao nosso site. Se não tiver a certeza de onde ou como adicionar snippets, consulte este tutorial.
/**
* Compare two time fields in a form
*
* @link https://wpforms.com/developers/how-to-compare-two-time-fields-in-a-form/
*/
function wpf_wpforms_update_total_field( $fields, $entry, $form_data ) {
// Only run on my form with ID = 731
if( 731 != $form_data[ 'id' ] ){
return $fields;
}
// Field ID 37 is the first time field of the form
$start_time = strtotime( $fields[37][ 'value' ] );
// Field ID 38 is the second time field of the form
$finishing_time = strtotime( $fields[38][ 'value'] );
// Field ID 41 is the hidden field that will calculate the difference
// between the two time fields and store the hours inside a hidden field of the entry
$fields[41][ 'value' ] = round(abs($finishing_time - $start_time)/ 3600,2) . __( ' Hours', 'text-domain');
return $fields;
}
add_filter( 'wpforms_process_filter', 'wpf_wpforms_update_total_field', 10, 3 );
Este snippet só será executado no ID do formulário 731. Analisará os dois Tempo campos do formulário, que são os IDs 37 e 38. Utilizar o round calculará a diferença entre os dois tempos e armazenará a diferença dentro da função Campo oculto
Terá de atualizar o snippet para corresponder aos IDs do formulário e do campo que tem no seu formulário. Se precisar de ajuda para saber onde encontrar essas IDs, consulte este tutorial.

Também gostaria de comparar duas datas? Consulte o nosso tutorial sobre Como comparar duas datas no mesmo formulário.
Relacionadas
Referência da ação: wpforms_process