Resumo de IA
Introdução
Tem interesse em comparar dois campos de Hora no seu formulário e capturar a diferença calculada na sua entrada? Não procure mais! Este tutorial foi feito à medida para si. Guiá-lo-emos através do processo de configuração do seu formulário e fornecer-lhe-emos o trecho de PHP necessário para implementar esta funcionalidade sem problemas no seu site.
Criação do formulário
Para começar, vamos criar um novo formulário e configurar os nossos campos. Neste guia, projetaremos um formulário especificamente para reservar salas de festas. O nosso trecho utilizará um Campo Oculto para calcular e anexar automaticamente as horas totais reservadas à entrada. Esta funcionalidade é particularmente útil para a equipa de contabilidade, fornecendo uma visão geral simples para faturação.
Se não tem familiaridade com a criação de formulários, pode consultar esta documentação para obter assistência.
Na configuração do nosso formulário, incluiremos campos padrão como Nome, Email, Morada e Telefone. Adicionalmente, incorporaremos um campo Dropdown para a seleção da sala, um campo Data para a data da reserva, dois campos de Hora para especificar as horas de início e fim da reserva e, finalmente, um Campo Oculto conclusivo para armazenar as horas totais calculadas usando o nosso trecho.

Adição do trecho de código
Em seguida, vamos adicionar o trecho ao nosso site. Se não tem a certeza onde ou como adicionar trechos, por favor, veja 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 trecho só será executado no ID do formulário 731. Ele analisará os dois campos de Hora do formulário, que são os IDs 37 e 38. Usando a função round, ele calculará a diferença entre as duas horas e armazenará a diferença no Campo Oculto.
Terá de atualizar o trecho para corresponder aos IDs do formulário e dos campos que tem no seu formulário. Se precisar de ajuda para encontrar estes IDs, por favor, veja este tutorial.

Gostaria também de comparar duas datas? Dê uma vista de olhos ao nosso tutorial sobre Como Comparar Duas Datas no Mesmo Formulário.
Relacionado
Referência de Ação: wpforms_process