複数ページのフォームで自動的に次のページに移動する

複数ページのフォームで、ユーザーが選択したときに自動的にページが進むようにしたいですか?簡単なコードスニペットで、ユーザーが回答を選択すると自動的に次のページに移動し、よりスムーズなフォームエクスペリエンスを実現できます。この機能強化により、クリック数が減り、フォームをより直感的に入力できるようになります。

このガイドでは、ユーザーの選択に基づいて複数ページのフォームを自動的に進める方法を紹介します。

フォーム構造の作成

まず、フォームフィールドと改ページを持つ複数ページのフォームが必要です。

このチュートリアルでは、スワッグシートのフォームを作成し、イメージチョイスを使用した3つの複数選択フィールドを作成します。各選択肢には改ページが含まれます。

複数ページのフォームを作成する際にヘルプが必要な場合は、複数ページのフォーム作成に関するガイドをご覧ください。

自動アドバンスCSSの追加

フォームが選択れると自動的に次のページに移動するようにしたいので、このフォームの「次へ」ボタンを非表示にするCSSを追加します。これを実現するには、このCSSをあなたのサイトにコピーしてください。

form#wpforms-form-1000 button.wpforms-page-button {
    visibility: hidden;
}

交換を忘れずに 1000 をフォームのIDに置き換えてください。フォームIDを見つけるのにお困りでしたら、以下のガイドをご覧ください。 フォームとフィールドIDの見つけ方.

自動アドバンスJavaScriptの追加

次に、このコード・スニペットを追加して、自動ページ送りを有効にしてください。コード・スニペットの追加にヘルプが必要な場合は、コード・スニペットの追加に関するチュートリアルをご覧ください。

スクリプトは、フォームIDを使って特定のフォームをターゲットにして動作します。 1000 イメージ・チョイス入力のクリックをリッスンし、トリガーする。 次のページ ボタンが自動的にクリックされる。

カスタマイズ・オプション

jQueryセレクタを調整することで、特定の質問をターゲットにするようにこの機能を変更することができます。

以下は、「はい」を選択した場合にのみ進む例である:

function wpf_dev_conditional_next_page() {
    ?>
    <script type="text/javascript">
    jQuery(function() {
        jQuery( "ul#wpforms-1000-field_25 li input" ).click(function() {
            if (jQuery(this).val() === "Yes")
                jQuery(this).closest( '.wpforms-page' ).find( '.wpforms-page-next' ).click();
            else
                location.assign( "https://myexamplesite.com/home" );
        });
    });
    </script>
    <?php
}
add_action('wpforms_wp_footer_end', 'wpf_dev_conditional_next_page', 30);

Elementorポップアップとの併用

フォームが Elementor ポップアップの中にある場合は、代わりにこの修正版を使用してください:

function wpf_dev_automatic_next_page_elementor_popup() {
    ?>
    <script type="text/javascript">
    jQuery( document ).on( 'elementor/popup/show', function( event, popup ) {
        jQuery( "form#wpforms-form-3241 ul.wpforms-image-choices input" ).click(function() {
            jQuery(this).closest( '.wpforms-page' ).find( '.wpforms-page-next' ).click();
        });
    });
    </script>
    <?php
}
add_action('wpforms_wp_footer_end', 'wpf_dev_automatic_next_page_elementor_popup', 30);

これで完了です!これで、フォームフィールドの回答に基づいて自動的に次のページに移動できるようになりました。次に、ユーザーの回答に基づいてページ全体をスキップする方法を学びたいですか?詳しくは、条件付きロジックを使用して改ページをスキップするチュートリアルをご覧ください。

参考記事

wpforms_wp_footer_end