AIサマリー
説明
について 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を保持します。