Está interessado em programar um formulário com base em horas específicas do dia? Conseguir isto é simples - pode configurar facilmente o seu formulário para aparecer ou não aparecer durante as horas designadas.
Neste tutorial, guiá-lo-emos através do processo de implementação desta funcionalidade sem problemas, utilizando o fragmento de código fornecido.
Vamos mergulhar e tornar o agendamento do seu formulário muito fácil!
Criar o formulário
Para começar, vamos criar um novo formulário e adicionar os nossos campos. Se precisar de ajuda para criar o seu formulário, consulte este guia útil.

Adicionar o snippet
Assim que o formulário for criado, terá de adicionar este snippet ao seu site. Se precisar de ajuda sobre como e onde adicionar snippets ao seu site, consulte 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á alguns aspectos a ter em conta neste script. Este script só será executado no formulário ID 3602, pelo que terá de atualizar este número de ID para corresponder ao seu próprio formulário.
Para obter ajuda para encontrar o número de identificação do seu formulário, consulte este tutorial.
Em seguida, o $hours
A variável só irá olhar para a hora atual que está no seu servidor, não no browser ou computador dos utilizadores. Também recupera a hora com base no formato de 24 horas utilizando a letra maiúscula H. Se pretender utilizar o formato de 12 horas, altere o H a um h. Dependendo do formato escolhido, poderá ser necessário atualizar o if ( $hours >= 20 && $hours < 8 )
.
Não se esqueça de atualizar a mensagem que será apresentada aos seus utilizadores no _e
para corresponder ao que gostaria de apresentar quando o formulário é fechado aos seus visitantes.
Por fim, a última parte do script irá ocultar o ID do formulário 23 utilizando echo 'jQuery("#wpforms-form-3602").hide();';
. Não se esqueça de atualizar o 3602 para corresponder ao seu próprio ID de formulário.
Se um visitante visitar a sua página quando o formulário estiver fechado, verá a sua mensagem.

E é tudo o que precisa para agendar um formulário com base na hora do dia!
Em seguida, gostaria de mostrar ou ocultar um botão de envio? Dê uma olhada no nosso tutorial sobre como mostrar condicionalmente o botão de envio do WPForms.
Relacionadas
Referência da ação: wpforms_frontend_output_after