Pianificazione di un modulo in base all'ora del giorno

Siete interessati a programmare un modulo in base a orari specifici della giornata? È semplice: potete impostare il vostro modulo in modo che appaia o non appaia nelle ore prestabilite.

In questa esercitazione, vi guideremo attraverso il processo di implementazione di questa funzionalità senza problemi, utilizzando lo snippet di codice fornito.

Facciamo un tuffo nel passato e rendiamo la programmazione del modulo un gioco da ragazzi!


Creazione del modulo

Per iniziare, creeremo un nuovo modulo e aggiungeremo i nostri campi. Se avete bisogno di aiuto per creare il vostro modulo, date un'occhiata a questa utile guida.

Per programmare un modulo è necessario innanzitutto crearne uno e aggiungere i propri campi

Aggiunta dello snippet

Una volta creato il modulo, dovrete aggiungere questo snippet al vostro sito. Se avete bisogno di aiuto su come e dove aggiungere gli snippet al vostro sito, consultate questo 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 );

Ci sono alcune cose da notare in questo script. Questo script viene eseguito solo sul modulo ID 3602, quindi è necessario aggiornare questo numero ID per farlo corrispondere al proprio modulo.

Per trovare il numero di ID del modulo, consultate questo tutorial.

Successivamente, il $hours La variabile guarderà solo l'ora corrente che si trova sul vostro server, non sul browser o sul computer degli utenti. Inoltre, recupera l'ora in base al formato 24 ore, utilizzando il carattere maiuscolo H. Se si desidera utilizzare il formato a 12 ore, modificare il parametro H ad un h. A seconda del formato scelto, potrebbe essere necessario aggiornare il file if ( $hours >= 20 && $hours < 8 ).

Ricordarsi di aggiornare il messaggio che verrà visualizzato dagli utenti nel file _e in modo che corrisponda a ciò che si desidera visualizzare quando il modulo viene chiuso ai visitatori.

Infine, l'ultima parte dello script nasconderà l'ID del modulo 23 utilizzando echo 'jQuery("#wpforms-form-3602").hide();';. Ricordarsi di aggiornare il 3602 per far corrispondere l'ID del proprio modulo.

Se un visitatore visita la vostra pagina quando il modulo è chiuso, vedrà il vostro messaggio.

Con questo snippet è possibile programmare facilmente la visualizzazione del modulo solo in determinate ore del giorno.

E questo è tutto ciò che serve per programmare un modulo in base all'ora del giorno!

Poi, volete mostrare o nascondere un pulsante di invio? Date un'occhiata al nostro tutorial su come mostrare in modo condizionato il pulsante di invio di WPForms.

Riferimento azione: wpforms_frontend_output_after