Descrizione

Il wpforms_frontend_output si attiva prima che un modulo venga visualizzato nel frontend del sito e all'interno del contenitore HTML del modulo. Si attiverà solo se il modulo esiste e contiene dei campi.

Parametri

$form_data
(array) Impostazioni/dati del modulo elaborati, preparati per essere utilizzati in seguito.
$forma
(WP_Post) Tipo di post del modulo.

Fonte

wpforms/src/Frontend/Frontend.php

Ulteriori informazioni

Mentre wpforms_frontend_output si attiva solo per i moduli validi non vuoti e viene eseguita all'inizio del processo di resa dell'output. Tuttavia, ciò che si inserisce con questa azione sarà visualizzato all'interno del file HTML form contenitore.

Un'azione alternativa da considerare è wpforms_frontend_output_before, che funziona in modo simile, tranne che sarà al di fuori del contenitore del modulo HTML.

Esempi

Nel nostro esempio, abbiamo un modulo che verrà eliminato il giorno di Natale. Vogliamo visualizzare un messaggio sopra il modulo che calcoli la data odierna meno il giorno di Natale e dia all'utente un conteggio di quanti giorni rimangono per inviare il modulo.

/**
 * Output something before your form(s).
 * 
 * @link  https://wpforms.com/developers/wpforms_frontend_output/
 *
 * @param array   $form_data Form data and settings.
 * @param object  $form      Form post type.
 */

function wpf_dev_frontend_output( $form_data, $form ) {

    // Optional, you can limit to specific forms. Below, we restrict output to
    // form #898.
    if ( absint( $form_data[ 'id' ] ) !== 898 ) {
    return;
    }

	// Set the PHP timezone
	date_default_timezone_set( 'America/New_York' );

	// Set the variable to Christmas day
	$christmasDay = strtotime( 'December 25' );

	// Get the current date
	$time = time();

	// Calculate how many days from today's date to Christmas day	
	$days = ceil(($christmasDay - $time)/60/60/24);

	echo '<div class="countdown_wrapper"> <p>' . __( 'This contest closes on <strong>12/25/2024</strong>, enter now! There are only <strong>', 'text-domain' ) . $days . __( '</strong> days left to enter!', 'text-domain' ) . '</p></div>';
	
}

add_action( 'wpforms_frontend_output', 'wpf_dev_frontend_output', 10, 2 );

Articoli di riferimento

Come visualizzare il numero residuo del limite di iscrizione