Descrizione

Il wpforms_process_redirect_url si attiva all'invio del modulo per caricare l'URL necessario per il reindirizzamento.

Parametri

$url
(stringa) URL per il reindirizzamento.
$form_id
(int) ID modulo.
$form_data
(array) Impostazioni/dati del modulo elaborati, preparati per essere utilizzati in seguito.
$campi
(array) Dati di campo sanificati.
$entry_id
(int) Id della voce.

Fonte

wpforms/includes/class-process.php

Ulteriori informazioni

Il wpforms_process_redirect_url che sarà usato per il reindirizzamento dopo l'invio del modulo.

Esempi

In questo esempio, imposteremo il modulo per un reindirizzamento nelle impostazioni del costruttore di moduli e poi, in base a una domanda specifica del modulo, reindirizzeremo l'utente a URL diversi in base alla risposta.

Se si intende utilizzare questo snippet, è importante ricordare che dalla scheda Impostazioni, nella sezione Conferme, si deve impostare il Tipo di conferma su Vai all'URL (reindirizzamento). Per ulteriori informazioni al riguardo, consultare questa documentazione.

/**
 * Redirect URL.
 *
 * @link https://wpforms.com/developers/wpforms_process_redirect_url/
 *
 * @param string     $url       URL to redirect to.
 * @param int        $form_id   The form ID.
 * @param array      $form_data Processed form settings/data.
 * @param array      $fields    Sanitized fields data.
 * @param int        $entry_id  Entry id.
 *
 * @return string
 */
   
function wpf_dev_process_redirect_url( $url, $form_id, $fields, $form_data, $entry_id ) {
     
// Only run on my form with ID = 879.
    if ( absint( $form_data[ 'id' ] ) !== 879 ) {
        return $fields;
    }
	// Assign the checkbox field that shows the room number to a variable
	$room_number = $fields[4][ 'value' ]; 
	
	if ($room_number === "Room A") {
		
		// Redirect to page with Room A information
		$url = 'http://myexamplesite.com/room-a-info';
	} 
	    elseif ($room_number === "Room B") {
			
			// Redirect to page with Room B information
			$url = 'http://myexamplesite.com/room-b-info';
		} 
		    elseif ($room_number === "Room C") {
			
			// Redirect to page with Room C information	
			$url = 'http://myexamplesite.com/room-c-info';
		} 
	    else {
			
			// Keep the current redirect URL that is set in the form builder settings
			$url = $url;
		}
	
    return $url;
}
add_filter( 'wpforms_process_redirect_url', 'wpf_dev_process_redirect_url', 10, 5 );


L'utilizzo di questo snippet significa che qualsiasi URL impostato nella scheda Conferme verrà ignorato e utilizzerà invece questo reindirizzamento.

Se l'utente sceglie di prenotare Camera Ail modulo ignorerà l'URL dalle impostazioni di reindirizzamento del costruttore di moduli sul file Conferme e reindirizzare invece a un URL contenente informazioni su Camera A. Il ciclo continua con le opzioni elencate per ogni stanza, con un ripiego nell'ultimo punto. else e mantiene l'URL originale dalle impostazioni del costruttore di moduli.