フォームを作成する際に応募や投稿に対して上限を決める場合があります。
Gravity Forms では、GravityPerksGP Limit Submissions を使用してこの機能を実現します。

GP Limit Submissions プラグインの使用方法を説明しようと思います。

GP Limit Submissions の使い方

前提条件

  • WordPressにGravity Formsが正常にインストールされ、アクティベートされていること
  • GravityPerks が正常にインストールされ、アクティベートされていること

GP Limit Submissions のインストールと有効化

まず、WordPress 左メニューから、フォーム > Perks を選択し、Gravity Perks のメニューを開きます。

GravityPerks メニュー

Gravity Perks のトップページが開きますので、「Install Perks」タブをクリックします。

Gravty Perks トップページ

Install Perks タブには、すでに登録されたPerks(Registeres Perks)と未登録のPerks(Unregistered Perks)が表示されていますので、Unregistered Perksから「GP Limit Submissions」を探し、「Install Perk」ボタンをクリックします。

Gravity Perks インストールタブ
Install Perk をクリックしてインストール

インストールが完了したら「Activate Perk」ボタンでプラグインの有効化を行います。

インストールが完了したら「Activate Perk」ボタンで有効化

プラグインの有効化が完了すると、プラグイン一覧画面に遷移します。

正常に有効化が行われた表示

これで GP Limit Submissions のインストールが完了です。

フォームの作成と GP Limit Submissions の設定

次に、フォームを作成します。
WordPress 左側メニューから、「フォーム > 新規フォーム」を選択します。

新規フォーム作成メニュー

フォームの新規作成ダイアログが開きますので、適当な名前をつけて「フォームの作成」ボタンをクリックして保存します。

フォームの新規作成ダイアログ

フォームを保存すると、フォームエディターの画面が表示されます。
上部メニューの「設定」をクリックして「Limit Submissions」を選択します。

Limit Submissions の設定メニュー

次に、Limit Submissions リミットフィードの一覧画面が開きますので、「新規追加」ボタンをクリックします。

Limit Submissions フィードの一覧画面

リミットフィードの設定画面が開きますので、ルールを設定します。

Limit Submissions の設定画面

フィードの設定内容

フィードの設定内容には、一般設定とルールがあります。

一般設定の設定内容

一般設定セクション

一般設定には以下の設定内容があります。

一般設定
名称日本語説明
Limit Feed Nameリミットフィード名この制限の名前です。(必須)
Submission Limit投稿上限数この制限が適用される場合の応募可能な数を指定します。(必須)
Time Period期間この制限フィードが適用される期間を指定します。
この期間に投稿されたものだけが、投稿制限にカウントされます。

無期限
 この制限フィードのルールに一致する既存のすべてのエントリーが、投稿制限の対象となります。

・期間
 指定した期間(現在の時刻からさかのぼって)内に投稿されたエントリーのみが投稿制限にカウントされます。

・カレンダー期間
 指定されたカレンダー期間に該当するものだけが、投稿制限の対象となります。

・フォームスケジュール
 指定したフォームスケジュールに該当するものだけが、投稿数の上限にカウントされます。
 フォームのスケジュールは、「フォーム設定」ページの「フォームのスケジュール」設定で設定することができます。
Limit Messageリミットメッセージ投稿が制限された場合、またはフォームの投稿制限に達した場合に、ユーザーに表示するメッセージを指定します。
「メディアを追加」ボタンで画像等を貼りつけたり、マージタグで動的な値を表示することも可能です。

ルール

ルールグループ

このリミットフィードを適用するかどうかを決定するルールのグループを作成します。
右側の(+)/(-)アイコンを使って、ルールをグループに追加してください。
グループ内のすべてのルールが真でなければ、そのグループはマッチしません。

下の「Add Rule Group(ルールグループを追加する)」ボタンをクリックして、別のグループを追加することもできます。
いずれかのグループがマッチすれば、このリミットフィードが適用されます。

ルール設定セクション
リミットルール
IP

投稿ユーザーのIPアドレスで制限する。これは、他の識別情報を持っていない可能性のあるサイトへの訪問者を制限するのに便利です。

  • Each IP – フィードの制限をすべての IPアドレス に、IP ごとに適用します。これは、すべてのIPがまとめて制限を共有するのではなく、それぞれのユニークなIPが制限までフォームを送信できるようになります。
  • Specific IP – 特定のIPアドレスにフィードリミットを適用します。
User

投稿するユーザーのWordPressユーザーIDで制限します。サイトにログインしているユーザーを制限する場合に有効です。

  • Each Users – フィードの制限をすべてのWordPressユーザーに、ユーザーごとに適用します。これは、すべてのユーザーがまとめて上限を共有するのではなく、それぞれのユニークなユーザーが上限までフォームを送信できるようになります。
  • Specific User – フィードの制限を特定のWordPressユーザーに適用します。あなたのサイトのユーザーは、ドロップダウンに表示され、簡単にフィルタリングして選択できます。

注意事項

このドロップダウンに表示されるユーザーの数は1000人が上限です。1000人以上のユーザがいるサイトでは、gpls_rules_get_user_argsフィルターを使って、すべてのユーザを表示することができます。

Embed URL

エントリーが送信されたURLで制限をかけます。これは、複数のページで同じフォームを使用し、フォームごとではなくページごとにフィード制限を適用したい場合に非常に便利です。

  • Each URL –フォームが送信される各URLにフィードリミットを適用します。
  • All URLs – フォームが送信されたすべてのURLにフィードリミットを適用します。
  • Specific URL – フォームの送信元となる特定のURLにフィードリミットを適用します。
  • Post/Page – フォームが送信された特定の投稿/ページにフィードリミットを適用します。これは、UIで選択する投稿/ページのリストを提供することを除いて、特定のURLオプションと同じように動作します。
Role

投稿ユーザーのWordPressユーザーロールによる制限。

  • Specific Role – フィードの制限を特定のロールに適用します。既存のWordPressのロールはすべて選択用のドロップダウンに入力されます。
  • Anonymous – フィードの制限をロールのないユーザにも適用します。この特別なオプションは gpls_apply_role_limit_per_user フィルタが実装されている場合にのみ利用可能で、 false を返します。
Field Value

1つまたは複数の送信されたフィールド値で制限する。フォームフィールドの一覧から選択します。複数のフィールドを同じルールグループに追加して、それらのフィールドの値のユニークな組み合わせで制限する。

ルールの適用

複数のルールフィードを作成した場合、ルールフィード一覧に複数のフィードが表示されますが、これらは上から下に順番に適用されます。制限に達した、または制限を超えた最初のフィードからの制限メッセージが表示されます。追加のフィードは評価されません。

例えば、日毎に1つの投稿で制限、週毎に7つの投稿で制限を行うと以下のような設定になります。
1つの投稿が行われると、日毎のメッセージ「本日の受付は終了しました」が表示され、日が変わると再度受付を開始します。
週全体の投稿数は週毎のルールフィードで判定を行うといった形です。

ルールフィード一覧

[gpls] ショートコード

 [gpls] ショートコードを使用すると、現在のユーザに投稿の制限、回数、残り回数を表示することができます。
フォームごとに複数の制限を設定できるので、もしどの制限フィードも使い果たされていない場合は、制限に最も近いフィードが使用されることになります。

残りの投稿を表示する

コンテキストのリミットフィードにおいて、制限に達するまでの残り投稿数を表示します。

[gpls form="123" action="remaining"]

投稿数の表示

コンテキストのリミットフィードにカウントされている投稿数を表示します。

[gpls form="123" action="count"]

表示限界

コンテキストフィードに設定されている制限値を表示します。これは、制限の総数や残りを表示したい場合に便利です (例: 「あなたは 3 / 5 のエントリを送信しました。」)。

[gpls form="123" action="limit"]

すべてのオプション

  • form – 必須  ショートコードの適用先となるフォームIDを指定します。
  • action – オプション  実行するアクション(remainingcountlimit)を指定する。デフォルトは remaining
  • feed – オプション  ショートコードのコンテキストを、フィードIDで特定のリミットフィードに設定します。フィードIDは、リミットフィードの編集ビューのURLの fid パラメータで確認できます。

注意事項

Field-Valueベースのルールを含むリミットフィードは、送信に基づいてのみ評価されるため、このショートコードでは動作しません。

上限到達の通知

GP Limit Submissions は、リミットフィードの上限に達したときに Gravity Forms 通知を送信するための特別な通知イベントを提供します。
通知の受信者は通知自体に設定することができ、同じイベントに対して複数の通知を作成することができます。これにより、制限に達したときに管理者や投稿ユーザーに通知することができます。

デフォルトの通知イベントは、"Submission limit reached "です。これは、任意のリミットフィードの制限に達したときに発生します。GPLSはフィード固有の通知イベントもサポートしており、特定のリミットフィードの制限に達したときのみ通知を発生させることができます。

投稿者プロフィール

DoL(CMSラボ所長)DoL(CMSラボ所長)
CMS Laboの所長。
所員はまだない。

DoLは Director of Laboratories の略です。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA