Introdução
Você gostaria de comparar duas datas no mesmo formulário? Usando um pequeno snippet PHP, você pode facilmente pegar duas datas e compará-las dentro do mesmo formulário. Neste tutorial, vamos usar um snippet PHP que pegará dois seletores de data dentro do mesmo formulário.
Criando o formulário
Primeiro, precisamos configurar nosso formulário. Vamos criar um formulário e adicionar nossos campos, incluindo os dois campos do formulário Date que estão definidos para o formato Date.
Depois de adicionar esses campos, certifique-se de defini-los como Date Picker na guia Advanced (Avançado ).
Se precisar de ajuda para criar seu formulário, consulte esta documentação.
Adição do snippet para comparar duas datas
Antes de adicionar o snippet, você precisará localizar o ID do formulário e os dois IDs de campo para os campos Date que acabou de adicionar ao formulário.
Se você precisar de ajuda para encontrar esses números de identificação, consulte este tutorial.
Quando você tiver esses IDs, poderá adicionar o seguinte snippet ao seu site.
/** * Compare 2 dates inside the same form. * * @link https://wpforms.com/developers/how-to-compare-two-dates-in-the-same-form/ */ function wpf_dev_compare_dates( $fields, $entry, $form_data ) { // Optional, you can limit to specific forms. Below, we restrict output to // form #731. if ( absint( $form_data[ 'id' ] ) !== 731 ) { return $fields; } // 3 is the ID of date 1 field $date_1 = $fields[3][ 'unix' ]; // 4 is the ID of date 2 field $date_2 = $fields[4][ 'unix' ]; // If date 2 is earlier of the same as time 1 if ( $date_2 <= $date_1 ) { // [ 'header' ] will display the error message above the form // [ 'footer' ] will display the error message under the form wpforms()->process->errors[ $form_data[ 'id' ] ][ 'header' ] = esc_html__( 'The pickup date should not be earlier than the order date.', 'plugin-domain' ); } } add_action( 'wpforms_process', 'wpf_dev_compare_dates', 10, 3 );
Se você não tiver certeza de onde ou como adicionar snippets personalizados ao seu site, consulte este tutorial.
A maneira como o snippet funciona é que ele só será executado no ID 731 do formulário e, em seguida, procurará o ID do campo Date 3 e o ID do campo Date 4 e os atribuirá às variáveis $date_1 e $date_2 para que possa verificar se $date_2 é menor ou igual a $date_1; se for, ele exibirá um erro acima do segundo campo Date, mostrando que essa data não pode ser anterior à outra.
E isso é tudo o que você precisa para comparar duas datas no mesmo formulário! Gostaria de fornecer alguma funcionalidade para uma restrição de idade em seu formulário também? Confira nosso tutorial sobre Como fornecer uma restrição de idade no campo de formulário Datepicker.
Relacionado
Referência da ação: wpforms_process