ご注意!

この記事にはJavaScriptコードが含まれており、開発者を対象としています。このコードは便宜上提供していますが、コードのカスタマイズやサードパーティの開発についてはサポートを提供していません。

追加のガイダンスについては、WPBeginner の カスタムコードの追加方法に関するチュートリアル を参照してください。

閉じる

免責事項を読んだ後にチェックボックスを有効にする方法

はじめに

免責事項または利用規約を読んだ後にチェックボックスを有効にしますか?チェックボックスフィールドの免責事項/利用規約表示を有効にする機能の可能性を活用する方法を学びましょう。この機能により、ユーザーは利用規約に同意したことを表明できます。ただし、ユーザーが免責事項を最後までスクロールするまでこのフィールドを無効にしたい場合は、このチュートリアルが最適です!

フォームの作成

フォームを作成し、フィールドを追加することから始めます。フォームの作成にヘルプが必要な場合は、こちらの役立つガイドをご覧ください

フォームを作成し、フィールドを追加することから始めます

利用規約の有効化

他のフィールドを追加したら、チェックボックスフィールドを追加し、詳細設定タブをクリックします。このタブには、免責事項/利用規約表示を有効にするオプションが表示されます。このオプションをオンにし、説明フィールドにテキストを追加します。

チェックボックスを選択し、[高度な設定]タブで[免責事項/利用規約表示を有効にする]オプションを切り替えます。

有効にしたら、一般設定タブに戻り、説明にテキストを追加します。

説明フィールドは、見出し、pタグ、リンクなどの基本的なHTMLを受け入れます。各セクションを明確にするために、免責事項ではh2見出しを使用しています。

pタグ、見出し、リンクなどの基本的なHTMLを受け入れるチェックボックスフィールドの説明エリアにテキストを追加します。

スニペットの追加

次に、スニペットをサイトに追加します。スニペットをサイトに追加する方法と場所については、こちらのチュートリアルをご覧ください

/**
 * Disable checkbox until terms of service has been read
 *
 * @link https://wpforms.com/developers/how-to-enable-a-checkbox-after-reading-disclaimer/
 */
   
function wpf_dev_tos_confirmation( ) {
?>
  
<script type="text/javascript">
  
jQuery(document).ready( function() { 
     
    // Set an attribute on the checkbox description to readonly
    jQuery( "div#wpforms-3658-field_14-description" ).attr( "readonly","readonly" );
     
    // Set an attribute on the checkbox description to overflow-y scroll to check the scroll position
    jQuery( "div#wpforms-3658-field_14-description" ).attr( "overflow-y","scroll" );
     
    // Set an attribute on the checkbox field to disabled
    jQuery( "#wpforms-3658-field_14 input" ).attr( "disabled","true" );
     
    // As the user scrolls through the description, envoke this function
    jQuery( "div#wpforms-3658-field_14-description" ).scroll(function () {
 
        // Evaluate the scroll position inside the checkbox description 
        if (jQuery(this).scrollTop() == jQuery(this)[0].scrollHeight - jQuery(this).innerHeight() || jQuery(this).scrollTop() + jQuery(this).innerHeight() >= jQuery(this)[0].scrollHeight ) {
 
            // When user has scrolled to the bottom of the description, remove the disabled attribute
            jQuery( "#wpforms-3658-field_14 input" ).removeAttr( "disabled" );
 
        }
 
    });
     
});
  
</script>
  
<?php
}
  
add_action( 'wpforms_wp_footer_end', 'wpf_dev_tos_confirmation', 30 );

このスニペットは、チェックボックスフィールドの説明をdiv#wpforms-3658-field_14-descriptionを使用して確認します。当社のフォームIDは3658で、チェックボックスフィールドのフィールドIDは14です。次に、このフィールドにreadonlyoverflow-y, scrollの2つの属性を設定します。これにより、免責事項のスクロール位置を計算できるため、訪問者が免責事項の最下部までスクロールしたタイミングを知ることができます。

スニペットの次のセクションでは、フィールドID#wpforms-3658-field_14 inputを使用して、チェックボックスフィールドにdisabled属性を追加します。

ユーザーが免責事項を下にスクロールすると、スクロール位置を計算します。スクロール位置が0に達すると、disabled属性が削除され、訪問者はチェックボックスをクリックして同意できるようになります。

この例では、フォームIDを3658、フィールドIDを14として使用しました。ただし、これらのIDをご自身のID番号に合わせて更新する必要があります。ID番号の検索にヘルプが必要な場合は、こちらのチュートリアルをご覧ください

訪問者がフォームを表示しても、免責事項の最後までスクロールしない限り、免責事項のチェックボックスに同意することはできません。

これで完了です!フォーム内のチェックボックスの選択数をカウントしますか?フォーム内のチェックボックスの選択数をカウントする方法の記事をご覧ください。

アクション参照: wpforms_wp_footer_end