Atenção!

Este artigo contém código PHP e destina-se a programadores. Oferecemos este código como cortesia, mas não prestamos suporte para personalizações de código ou desenvolvimento de terceiros.

Para orientação adicional, consulte o tutorial da WPBeginner sobre como adicionar código personalizado.

Ignorar

Descrição

O filtro wpforms_process_redirect_url é acionado na submissão do formulário para carregar o URL necessário para o redirecionamento.

Parâmetros

$url
(string) URL para o redirecionamento.
$id_formulario
(int) ID do formulário.
$form_data
(array) Configurações/dados do formulário processados, preparados para serem usados posteriormente.
$fields
(array) Dados do campo higienizados.
$entry_id
(int) ID da entrada.

Origem

wpforms/includes/class-process.php

Mais Informações

O filtro wpforms_process_redirect_url que será usado para o redirecionamento assim que o formulário for submetido.

Exemplos

Neste exemplo, vamos configurar o formulário para um redirecionamento 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 planeia usar este trecho, é importante lembrar que, na aba Definições, na secção Confirmações, defina o Tipo de Confirmação para Ir para URL (Redirecionar). Para mais informações sobre isto, 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 $url;
    }
	// 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 );

Using this snippet means that any URL you have set on the Confirmations tab will be ignored and utilize this redirect instead.

If the user selects to reserve Room A, the form will ignore the URL from the form builder’s redirect settings on the Confirmations tab and instead redirect to a URL containing information about Room A. The loop continues through the options listed for each room with a fallback in the final else and keeps the original URL from the form builder settings.