説明

について wpforms_process_redirect_url フィルタがフォーム送信時に実行され、リダイレクトに必要な URL がロードされます。

パラメータ

URL
(文字列)リダイレクト先の URL。
フォームID
(int)フォームID。
フォームデータ
(配列)処理済みのフォーム設定/データ。
フィールド
(配列)サニタイズされたフィールドデータ。
$entry_id
(int)エントリーID。

ソース

wpforms/includes/class-process.php

詳細情報

について wpforms_process_redirect_url フィルタは、フォームが送信された後のリダイレクトに使われます。

この例では、フォームビルダーの設定でフォームをリダイレクトするように設定し、フォーム上の特定の質問に基づいて、回答に応じてユーザーを異なるURLにリダイレクトします。

このスニペットを使用する場合は、[設定]タブの[確認]セクションで[確認の種類]を[URLへ移動(リダイレクト)]に設定することが重要です。詳細については、こちらのドキュメントをご覧ください

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


このスニペットを使用すると、「確認」タブで設定したURLは無視され、代わりにこのリダイレクトが使用されます。

ユーザーが予約を選択した場合 ルームAのリダイレクト設定を無視します。 確認事項 タブにリダイレクトし、代わりに、以下の情報を含むURLにリダイレクトする。 ルームA.ループは、各部屋にリストされたオプションを通して、最後の else で、フォームビルダーの設定から元のURLを保持します。