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

Agendando um Formulário com Base na Hora do Dia

Você tem interesse em agendar um formulário com base em horários específicos do dia? Conseguir isso é simples – você pode configurar facilmente seu formulário para aparecer ou não durante horários designados.

Neste tutorial, vamos guiá-lo pelo processo de implementação dessa funcionalidade de forma integrada, usando o trecho de código fornecido.

Vamos começar e tornar o agendamento do seu formulário uma tarefa fácil!


Criação do Formulário

Para começar, vamos criar um novo formulário e adicionar nossos campos. Se precisar de ajuda para criar seu formulário, dê uma olhada neste guia útil.

para agendar um formulário, primeiro você precisa criar um e adicionar seus campos

Adicionando o Snippet

Depois que seu formulário for criado, você precisará adicionar este trecho ao seu site. Se precisar de ajuda sobre como e onde adicionar trechos ao seu site, por favor, revise este tutorial.

/* Hide a specific form based on the time of day 
 *
 * @link https://wpforms.com/developers/how-to-schedule-a-form-base-on-the-time-of-day/
*/
 
function wpf_dev_form_open_check( $form_data, $form ) {
     
    // Only process this snippet on form ID 3602
    if ( absint( $form_data[ 'id' ] ) !== 3602 ) {
        return;
    } 
    
	// H is for 24 hour format and h is for the 12 hour format
	// Get the current 24 hour format in hours only, this is pulled from your server
	$hours = intval(date('H'));

    // The form will be closed to any submissions from 8PM (20 in 24-hour time format) to 8AM
    if ( $hours >= 20 && $hours < 8 ) {
		// Display a message stating the form is currently closed
    	_e( 'We\'re sorry, this contest is only open for entry everyday from 8:00 AM EST to 8:00 PM EST. Please check back tomorrow for your raffle entry.', 'textdomain' );
		
		// Run a separate script to hide the form if it is currently closed to submissions
		echo '<script type="text/javascript">';
		echo 'jQuery("#wpforms-form-3602").hide();';
		echo '</script>';
	}

}
add_action( 'wpforms_frontend_output_after', 'wpf_dev_form_open_check', 10, 2 );

Há algumas coisas a serem observadas neste script. Este script só será executado no ID do formulário 3602, portanto, você precisará atualizar este número de ID para corresponder ao seu próprio formulário.

Para obter ajuda para encontrar o número do ID do seu formulário, por favor, confira este tutorial.

Em seguida, a variável $hours considerará apenas a hora atual do seu servidor, não do navegador ou computador dos usuários. Ela também recupera a hora no formato de 24 horas usando o H maiúsculo. Se você quiser usar o formato de 12 horas, mude o H para um h. Dependendo do formato que você escolher, pode ser necessário atualizar o if ( $hours >= 20 && $hours < 8 ).

Lembre-se de atualizar a mensagem que será exibida aos seus usuários na instrução _e para corresponder ao que você gostaria de exibir quando o formulário estiver fechado para seus visitantes.

Finalmente, a última parte do script ocultará o ID do formulário 23 usando echo 'jQuery("#wpforms-form-3602").hide();';. Lembre-se de atualizar o 3602 para corresponder ao ID do seu próprio formulário.

Se um visitante visitar sua página quando o formulário estiver fechado, ele verá sua mensagem.

com este trecho você agendou facilmente seu formulário para ser exibido apenas em determinados horários do dia

E é tudo o que você precisa para agendar um formulário com base na hora do dia!

Em seguida, você gostaria de mostrar ou ocultar um botão de envio? Dê uma olhada em nosso tutorial sobre como mostrar condicionalmente o botão de envio do WPForms.

Referência de Ação: wpforms_frontend_output_after