リダイレクトを新しいウィンドウで開く方法

フォームのリダイレクトを新しいウィンドウまたはタブで開きたいですか?WPFormsを使えば、フォーム送信に成功したときにフォームを新しいページにリダイレクトさせることができます。小さなJavaScriptコードスニペットで、このリダイレクトを新しいウィンドウまたはタブで開くように設定することができます。このチュートリアルでは、この小さなスニペットをサイトに追加して新しいウィンドウでリダイレクトを開く方法を紹介します。

リダイレクトを新しいウィンドウで開く

フォームを作成する前に、まずこのスニペットをサイトに追加します。

あなたのサイトにスニペットを追加する場所や方法がわからない場合は、こちらのチュートリアルをご覧ください

/**
 * Open. redirect in a new window
 *
 * @link https://wpforms.com/developers/how-to-open-redirect-in-a-new-window/
 */
 
function wpf_dev_open_redirect_new( ) {
?>
<script type="text/javascript">
    jQuery(function($){
        $( "form#wpforms-form-909" ).attr( "target", "_blank" );
        $( "#wpforms-form-909" ).on( 'submit', function(){
            location.reload(true);  
        });
    }); 
    </script>
<?php
}
add_action( 'wpforms_wp_footer_end', 'wpf_dev_open_redirect_new', 30 );

このスニペットはフォームID909にのみ適用されます。自分のフォームIDに合わせて、この部分を更新する必要があります。

フォームIDを見つけるのに必要なサポートについては、このチュートリアルを参照してください

フォームの作成

次に、フォームを作成し、必要なフィールドを追加する必要があります。

フィールドを設定したら、"設定" " 確認" をクリックし、"確認の種類" ドロップダウンで、"URLに移動" を選択し、ユーザーにリダイレクトさせたいURLを入力します。

注: 確認タイプの詳細については、こちらのチュートリアルをご覧ください

確認タイプをリダイレクトに設定し、URLを入力する。

AJAXフォーム送信を無効にする

このチュートリアルでは、フォームのAJAXを無効にする必要があります。これを行うには、設定 " 一般に行き、AJAXフォーム送信を有効にするが無効になっていることを確認してください。

リダイレクトを新しいウィンドウで開くには、フォーム送信時にajaxを無効にすることを忘れないこと。

これで完了です!新しいウィンドウでリダイレクトを開くスニペットの追加に成功しました。ブラウザウィンドウのタブ内に表示されるタイトルを変更したいですか?AJAXが有効なフォームでこれを実現したいですか?AJAX を使ってフォーム送信時に新しいリンクを開く方法」の記事をご覧ください。

参考アクション

wpforms_wp_footer_end

よくあるご質問

これを複数のフォームに適用したい場合は?

このスニペットを様々な異なるリンクを持つ複数のフォーム用に設定するには、コードのこの部分をコピーして元のコードの下に貼り付け、フォームIDを変更することでフォームIDを追加するだけです。

スニペットでは、コメントを読んで各「フォーム」ブロックのコードを見つけるだけだ。

/**
 * Open redirect in a new window
 *
 * @link https://wpforms.com/developers/how-to-open-redirect-in-a-new-window/
 */
  
function wpf_dev_open_redirect_new( ) {
?>
<script type="text/javascript">
     
    // 1st form
    jQuery(function($) {
         
        // Update the 521 to match your own form ID
        $( "form#wpforms-form-521" ).attr( "target", "_blank" );
        $( "#wpforms-form-521" ).on( 'submit', function(){
            location.reload(true);  
        });
         
    }); 
     
    // 2nd form
    jQuery(function($) {
         
        // Update the 2349 to match your own form ID
        $( "form#wpforms-form-2349" ).attr( "target", "_blank" );
        $( "#wpforms-form-2349" ).on( 'submit', function(){
            location.reload(true);  
        });
         
    }); 
     
    // 3rd form
    jQuery(function($) {
         
        // Update the 398 to match your own form ID
        $( "form#wpforms-form-398" ).attr( "target", "_blank" );
        $( "#wpforms-form-398" ).on( 'submit', function(){
            location.reload(true);  
        });
         
    }); 
 
     
    // 4th form
    jQuery(function($) {
         
        // Update the 9283 to match your own form ID
        $( "form#wpforms-form-9283" ).attr( "target", "_blank" );
        $( "#wpforms-form-9283" ).on( 'submit', function(){
            location.reload(true);  
        });
         
    }); 
    </script>
 
<?php
}
add_action( 'wpforms_wp_footer_end', 'wpf_dev_open_redirect_new', 30 );

ユーザーがすべてのフィールドに入力したときだけリロードするようにカスタマイズできますか?

はい、フォーム送信に成功したときだけページをリロードするようにスクリプトを修正することができます。これを実現するスニペットを以下に示します:

/**
 * Open redirect in a new window and reload page only on successful form submission.
 *
 * @link https://wpforms.com/developers/how-to-open-redirect-in-a-new-window/
 */
function wpf_dev_open_redirect_new() {
?>
&lt;script type="text/javascript">
    jQuery(function($) {
        // Open form submission in a new window
        $( "form#wpforms-form-909" ).attr( "target", "_blank" );

        // Listen to the WPForms custom event for successful submission
        $(document).on('wpformsAjaxSubmitSuccess', function(e, data) {
            if (data.data.form_id == 909) {
                location.reload(true);
            }
        });
    }); 
&lt;/script>
&lt;?php
}

add_action('wpforms_wp_footer_end', 'wpf_dev_open_redirect_new', 30);

909を 実際のフォームIDに置き換えてください。