Atenção!

Este artigo contém código PHP e destina-se a desenvolvedores. Oferecemos este código como uma cortesia, mas não fornecemos suporte para personalizações de código ou desenvolvimento de terceiros.

Para orientação extra, consulte o tutorial do WPBeginner sobre como adicionar código personalizado.

Dispensar

Como adicionar um ano à data de entrada

Você deseja adicionar automaticamente um ano à data de entrada das submissões do seu formulário? Neste tutorial, vamos guiá-lo através do 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 à frente da data de inscrição deles 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á!

Criando o formulário

Vamos começar criando um novo formulário. Se precisar de ajuda sobre como criar um novo formulário, revise esta documentação.

Para este tutorial, estamos criando um formulário de inscrição para voluntários. Este formulário capturará as diversas 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 da submissão, e uma data de expiração para o voluntário, pois queremos que o voluntário se inscreva novamente a cada ano.

comece criando seu formulário e adicionando seus campos

Definindo os Campos Ocultos

Dentro do nosso formulário, temos dois campos ocultos. Um é para armazenar as informações da data exata de entrada e o segundo é onde pegaremos a data de entrada, adicionaremos um ano e, em seguida, armazenaremos esses dados no segundo campo oculto, que será uma data de expiração.

adicione 2 campos ocultos ao seu formulário que conterão a data de envio, bem como a data que criaremos em nosso snippet para a data de expiração

Adicionando um ano à data de entrada do WPForms

Agora é hora de adicionar o snippet ao seu site. Se precisar de ajuda sobre como e onde adicionar snippets ao seu site, confira 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 notar que há uma referência ao ID do formulário (2189) e também algumas referências a IDs de campo (2, 30 e 33). Você precisará atualizar cada um desses números de ID para corresponder aos seus próprios IDs de formulário e campo. Se precisar de ajuda para encontrar seus números de ID, confira este tutorial.

No snippet acima, nossa função começa garantindo que o ID do formulário corresponda a 2189; se não corresponder, este snippet não será executado.

Na próxima parte do snippet, estamos verificando apenas para garantir que o campo Nome (este é o ID do campo 2) não esteja vazio. Como configuramos nosso formulário para tornar o campo Nome um campo obrigatório, sabemos que ele nunca estará vazio, mas o colocamos como uma verificação de validação mesmo assim.

Uma vez que continuamos em 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 submissão.

E, finalmente, vamos pegar a data atual, adicionar um ano e, em seguida, colocar essa nova data no segundo campo oculto (ID do campo 33).

E agora, ao visualizar a entrada, você pode ver claramente a data original da submissão do formulário, bem como a nova data que servirá como data de expiração da submissão.

com o snippet no lugar, você verá a data da entrada no primeiro campo oculto e a nova data que criamos adicionando 1 ano à data da entrada para a data de expiração do nosso voluntário

Você pode até seguir o guia nesta documentação para alterar a visualização padrão da tela de entradas, para que você possa ver facilmente essas datas ao visualizar todas as entradas.

ao alterar a visualização padrão de suas entradas, você pode ver facilmente os campos ocultos com as datas ao visualizar todas as entradas.

E é isso! Você adicionou e armazenou com sucesso uma nova data em suas entradas que é exatamente um ano a partir da data da 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.

Ação de Referência

wpforms_process_complete