Deseja adicionar automaticamente um ano à data de entrada dos envios de formulários? Neste tutorial, vamos orientá-lo no processo de configuração de um formulário para voluntários, completo com uma data de início. Além disso, mostraremos como gerar dinamicamente uma data de expiração que é um ano antes da data de inscrição usando PHP. Isso envolve a criação de campos ocultos para armazenar a data de início do voluntário e a data de expiração calculada. Vamos nos aprofundar no assunto!
Criando o formulário
Vamos começar criando um novo formulário. Se precisar de ajuda para criar um novo formulário, consulte esta documentação.
Para o propósito deste tutorial, estamos criando um formulário de inscrição de voluntário. Esse formulário capturará as várias informações necessárias para os voluntários, bem como dois campos ocultos que armazenarão a data de início, que é a data de entrada do envio, bem como uma data de expiração para o voluntário, já que queremos que o voluntário se inscreva novamente a cada ano.
Definição dos campos ocultos
Em nosso formulário, temos dois campos ocultos. Um deles é para armazenar as informações da data exata de entrada e o segundo é onde pegaremos a data de entrada, adicionaremos um ano e armazenaremos esses dados dentro do segundo campo oculto, que será uma data de expiração.
Adição de um ano à data de entrada do WPForms
Agora é hora de adicionar o snippet ao seu site. Se precisar de ajuda para saber como e onde adicionar snippets ao seu site, consulte nosso tutorial sobre esse assunto.
/** * Add one year to the entry date and store this date inside a hidden field * * @link https://wpforms.com/developers/how-to-add-a-year-to-the-wpforms-entry-date/ */ function wpf_dev_process_complete( $fields, $entry, $form_data, $entry_id ) { // Optional, you can limit to specific forms. Below, we restrict output to // form #2189. if ( absint( $form_data[ 'id' ] ) !== 2189 ) { return; } // Get the full entry object $entry = wpforms()->entry->get( $entry_id ); // Fields are in JSON, so we decode to an array $entry_fields = json_decode( $entry->fields, true ); // Checking to make sure Name field (ID 2) is not empty if (isset( $fields[2][ 'value' ] )) { // Set the date to today's date so the Entry Date is recorded // on the first hidden field in the form // Remember to update the 30 to match the field ID of your form for your first hidden field $entry_fields[30][ 'value' ] = date('m/d/Y'); // Set the date format and store the current date in a variable $setDate = date('m/d/Y'); $date = strtotime($setDate); // Get the date set above and add 1 year to this date $new_date = strtotime('+ 1 year', $date); // Store this new date inside the hidden field ID // Remember to update the 33 to match the field ID of your form for your second hidden field $entry_fields[33][ 'value' ] = date('m/d/Y', $new_date); } // Convert back to json $entry_fields = json_encode( $entry_fields ); // Save changes wpforms()->entry->update( $entry_id, array( 'fields' => $entry_fields ), '', '', array( 'cap' => false ) ); } add_action( 'wpforms_process_complete', 'wpf_dev_process_complete', 10, 4 );
No snippet acima, é importante observar que há uma referência de ID de formulário(2189), bem como algumas referências de ID de campo(2, 30 e 33). Você precisará atualizar cada um desses números de ID para que correspondam aos seus próprios IDs de formulário e campo. Se precisar de ajuda para saber onde encontrar seus números de ID, consulte este tutorial.
No trecho acima, nossa função começa verificando se o ID do formulário corresponde 2189
Se isso não acontecer, esse snippet não será executado.
Na próxima parte do snippet, estamos verificando apenas para garantir que o Nome (essa é a ID do campo 2
) não está vazio. Como configuramos nosso formulário para fazer o Nome um campo obrigatório, sabemos que ele nunca estará vazio, mas, mesmo assim, o colocamos como uma verificação de validação.
Quando continuarmos com nosso snippet, definiremos o primeiro campo oculto (ID do campo 30
) para a data atual, que é a mesma que a data de entrada do envio.
Por fim, pegaremos a data atual, adicionaremos um ano e colocaremos essa nova data dentro do segundo campo oculto (ID do campo 33
).
E agora, quando você visualizar a entrada, poderá ver claramente a data original do envio do formulário, bem como a nova data que será a data de expiração do envio.
Você pode até mesmo seguir o guia nesta documentação para alterar a visualização padrão da tela de entradas, de modo que possa ver facilmente essas datas ao visualizar todas as entradas.
E é isso! Você adicionou e armazenou com sucesso uma nova data dentro de suas entradas que é exatamente um ano a partir da data de entrada. Você também gostaria de armazenar valores de campo em suas entradas? Confira nosso tutorial sobre Como armazenar valores de campo na entrada do WPForms.