Pretende adicionar automaticamente um ano à data de entrada dos seus formulários? Neste tutorial, vamos guiá-lo pelo 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 lá!
Criar o formulário
Vamos começar por criar 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. Este formulário irá captar as várias informações necessárias para os voluntários, bem como dois campos ocultos que irão armazenar a data de início, que é a data de entrada da submissão, bem como uma data de expiração para o voluntário, uma vez que vamos querer que o voluntário se inscreva novamente todos os anos.
Definição dos campos ocultos
No nosso formulário, temos dois campos ocultos. Um é para armazenar a informação da data exacta de entrada e o segundo é onde vamos pegar na data de entrada, adicionar um ano e depois armazenar esses dados no segundo campo oculto, que será uma data de validade.
Adicionar 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 o nosso tutorial sobre este 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). Terá de atualizar cada um destes números de ID para corresponder aos seus próprios IDs de formulário e de campo. Se precisar de ajuda para saber onde encontrar os seus números de ID, consulte este tutorial.
No snippet acima, nossa função começa certificando-se de que o ID do formulário corresponde 2189
Se não o fizer, este snippet não será executado.
Na próxima parte do snippet, estamos verificando apenas para garantir que o Nome campo (este é o ID do campo 2
) não está vazio. Uma vez que configurámos o nosso formulário para fazer o Nome um campo obrigatório, sabemos que nunca estará vazio, mas mesmo assim colocámo-lo como uma verificação de validação.
Quando continuarmos com o nosso snippet, vamos definir o primeiro campo oculto (ID do campo 30
) para a data atual, que é a mesma que a data de entrada da apresentação.
E, finalmente, vamos pegar na data atual, adicionar um ano e colocar essa nova data no segundo campo oculto (ID do campo 33
).
E agora, quando visualiza a entrada, pode ver claramente a data original da submissão do formulário, bem como a nova data que será a data de expiração da submissão.
Pode até seguir o guia nesta documentação para alterar a vista predefinida do ecrã de entradas, de modo a poder ver facilmente estas datas quando visualiza todas as entradas.
E já está! Adicionou e guardou com sucesso uma nova data nas 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.