Descrição

O wpforms_process_redirect_url é ativado na submissão do formulário para carregar o URL necessário para o redireccionamento.

Parâmetros

$url
(string) URL para o redireccionamento.
$form_id
(int) ID do formulário.
$form_data
(matriz) Definições/dados de formulários processados, preparados para serem utilizados posteriormente.
$campos
(matriz) Dados de campo higienizados.
$entry_id
(int) ID da entrada.

Fonte

wpforms/includes/class-process.php

Mais informações

O wpforms_process_redirect_url que será utilizado para o redireccionamento quando o formulário for submetido.

Exemplos

Neste exemplo, vamos configurar o formulário para um redireccionamento nas definições do construtor de formulários e, em seguida, com base numa pergunta específica no formulário, redirecionar o utilizador para URLs diferentes com base na resposta.

Se estiver a planear utilizar este snippet, é importante lembrar que no separador Definições, na secção Confirmações, defina o Tipo de confirmação para Ir para URL (Redirecionar). Para obter mais informações sobre isso, consulte esta documentação.

/**
 * 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 );


A utilização deste snippet significa que qualquer URL que tenha definido no separador Confirmações será ignorado e utilizará este redireccionamento.

Se o utilizador optar por reservar Sala Ao formulário ignorará o URL das definições de redireccionamento do construtor de formulários no campo Confirmações e, em vez disso, redirecionar para um URL que contenha informações sobre Sala A. O ciclo continua através das opções listadas para cada divisão, com uma alternativa no último else e mantém o URL original das definições do construtor de formulários.