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