Como personalizar o seletor de horário do campo Data e Hora

Introdução

Você gostaria de personalizar o campo Data/Hora para o seletor de horário no WPForms? O Time Picker fornece ao usuário uma lista de horários para escolha. Esses horários podem ser alterados para que apenas um intervalo de tempo específico esteja disponível. Você também pode fornecer uma opção integrada no construtor de formulários para limitar determinados horários.

Para saber mais sobre a configuração de um limite único para o seletor de tempo, consulte esta documentação.

Neste tutorial, mostraremos como personalizar o seletor de horário no campo Time para desativar várias vezes usando um pequeno snippet de PHP.

Criando seu formulário

Primeiro, criaremos um novo formulário, adicionaremos nossos campos e adicionaremos um campo de formulário Time.

Se precisar de ajuda para criar seu formulário, consulte esta documentação.

Para o nosso formulário, usaremos as opções da guia Advanced para limitar o horário de abertura e fechamento do escritório das 8h às 17h.

crie seu formulário e defina o limite de horas na guia Advanced (Avançado) das opções do campo de tempo

Adicionando o snippet

Em seguida, queremos desativar o horário das 9h às 10h para uma reunião diária de toda a empresa, mas também queremos desativar o horário das 12h às 13h, que também é o horário de almoço. Para fazer isso, precisamos adicionar um snippet ao nosso site.

Há três maneiras diferentes de aplicar isso:

  • Todos os time pickers em todo o site
  • Todos os seletores de tempo em um formulário específico
  • Um seletor de horário específico em um formulário específico.

Escolha o trecho de código que atenda às suas necessidades e copie-o em seu site.

Se precisar de ajuda sobre como adicionar snippets ao seu site, consulte este tutorial .

O seletor de tempo pode ser personalizado ainda mais usando as opções disponíveis na biblioteca jQuery timepicker.

Todos os time pickers em todo o site

As informações abaixo se aplicam a todos os selecionadores de tempo no site.

/**
 * Limit the times available in the Date Time field time picker.
 *
 * @link https://wpforms.com/developers/customize-the-date-time-field-time-picker/
 */

function wpf_dev_limit_time_picker() {
    ?>

    <script type="text/javascript">

        window.wpforms_timepicker = {

			// Disable lunch time and daily meeting time
			disableTimeRanges: [
				[ '9am', '10am' ],
				[ '12pm', '1pm' ]
			]

        };

    </script>

    <?php
}

add_action( 'wpforms_wp_footer', 'wpf_dev_limit_time_picker', 30 );

Todos os seletores de tempo em um formulário específico

As informações abaixo serão aplicadas a todos os selecionadores de tempo dentro do formulário ID 879.

/**
 * Limit the times available in the Date Time field time picker.
 *
 * @link https://wpforms.com/developers/customize-the-date-time-field-time-picker/
 */

function wpf_dev_limit_time_picker() {
    ?>

    <script type="text/javascript">

        // Change this _879 to match the form ID you have on your own form
        window.wpforms_879 = window.wpforms_879 || {};
        window.wpforms_879.timepicker = {

			// Disable lunch time and daily meeting time
			disableTimeRanges: [
				[ '9am', '10am' ],
				[ '12pm', '1pm' ]
			]

        };

    </script>

    <?php
}
add_action( 'wpforms_wp_footer', 'wpf_dev_limit_time_picker', 30 );

Um seletor de horário específico em um formulário específico

A seguir, será aplicado ao seletor de tempo no campo ID 8 dentro do formulário ID 879.

/**
 * Limit the times available in the Date Time field time picker.
 *
 * @link https://wpforms.com/developers/customize-the-date-time-field-time-picker/
 */

function wpf_dev_limit_time_picker() {
    ?>

    <script type="text/javascript">

        // Change this _879_8 to match the form ID and the field ID you have on your own form
        window.wpforms_879_8 = window.wpforms_879_8 || {};
        window.wpforms_879_8.timepicker = {

            forceRoundTime: true,
			// Disable lunch time and daily meeting time
			disableTimeRanges: [
				[ '9am', '10am' ],
				[ '12pm', '1pm' ]
			]

        };

    </script>

    <?php
}
add_action( 'wpforms_wp_footer', 'wpf_dev_limit_time_picker', 30 );

Se precisar de ajuda para identificar os IDs de formulário ou campo, leia este artigo.

Os visitantes podem ver os intervalos de tempo, mas não poderão selecioná-los

Seus visitantes podem ver os horários que você desativou com o snippet, mas não poderão selecioná-los.

Isso é tudo o que você precisa para personalizar o seletor de hora para o campo Data/Hora no WPForms. Você gostaria de criar formatos adicionais para seu seletor de data? Nosso tutorial, How to Create Additional Formats for the Date Field (Como criar formatos adicionais para o campo de data ), mostrará como você pode usar o PHP para fazer isso.

Referência da ação: wpforms_wp_footer

PERGUNTAS FREQUENTES

P: Também posso usar esse filtro para alterar os intervalos de tempo?

R: Com certeza! Por padrão, o construtor de formulários WPForms lhe dará a opção de definir os intervalos de tempo para 15 minutos, 30 minutos e 1 hora. Para alterar os intervalos de tempo para 5 minutos, você usaria o seguinte código:

/**
 * Change the time intervals on the time picker
 *
 * @link https://wpforms.com/developers/customize-the-date-time-field-time-picker/
 */

function wpf_dev_limit_time_picker() {
    ?>
    <script type="text/javascript">

        // Change this _797 to match your own form ID number
        window.wpforms_797 = window.wpforms_797 || {};
        window.wpforms_797.timepicker = {
            
            // Limit times to every 5 minutes
            step: '5'
        };

    </script>
    <?php
}
add_action( 'wpforms_wp_footer', 'wpf_dev_limit_time_picker', 30 );

Lembre-se apenas de alterar o window.wpforms_797 e o step: '5' para corresponder ao seu ID de formulário e ao intervalo de tempo que você deseja usar.