Gravity Forms Submit to Access

Flexible content gating via Gravity Forms submissions.

What does it do?

Gravity Forms Submit to Access restricts content behind form submissions, allowing you to create gated content or even a paywall. You have full control over which forms give access to which content, how long that access lasts, and the access restriction behavior.

With Submit to Access you can create:

  • Lead magnet downloads only available after an interest form
  • Premium content paywalled by a payment form
  • Multi-step content where each form unlocks the next section
  • Exclusive content revealed after a quiz or survey
  • Event resources shown only after an RSVP form is submitted
  • Post-form redirects to premium or members-only pages

Features

  • Gated content made easy.
    Require a form submission before showing your content. Works with posts, blocks, shortcodes, and hooks (for custom logic).
  • Flexible access rules.
    Choose which forms unlock access to which content. Let users submit from any page or require unique submissions.
  • Customizable communication.
    Define the behavior before access: show a custom message and place the form exactly where you want it, or redirect to a different URL.
  • Tamperproof content gating.
    Protect your gated content with Submit to Access’ magically secure lock. Not even Alohomora! can get through it.
  • Control how long access lasts.
    Set access to expire with the browser session, last forever, or define a custom time span from minutes to years.
  • Powerful paywalls.
    Create a paywall using Gravity Forms’ payment gateways without having to create user accounts.
  • Automatic updates.
    Get updates and the latest features right in your dashboard.
  • Legendary support.
    We’re here to help! And we mean it.

How do I enable this functionality?

Block Editor

Navigate to the content you want to lock down.
Activate Enable Submit to Access in the post or block settings.
Choose which form(s) are required for granting access.

Classic Editor

Navigate to the page you want to lock down.
Activate Enable Submit to Access in the GP Submit to Access metabox.
Choose which form(s) are required for granting access.

Via Shortcode

You can also enable GP Submit to Access via shortcode and use it anywhere shortcodes are supported, including other page editors like Elementor and Beaver Builder.


Feature Details

Full Page Gating

Block entire posts by activating GP Submit to Access in the Block Editor post settings or in the Classic Editor Submit to Access metabox.

Content Section Gating

Restrict specific sections of content by activating GP Submit to Access on individual blocks in the Block Editor or by using shortcodes.

Access Controls

Configure how a visitor gains access to gated content by selecting one or more forms that will give access to that piece of content when submitted. You can also require unique submissions of the same form on each page with gated content.

Control for how long a visitor has access to your content.

Personalized Communication

Clearly communicate with visitors with customizable messages for requiring submission and for while the content is being fetched after submission.

Redirect to Form

Instead of messages, you could choose to work with redirects: if a visitor accesses a gated post, they are automatically redirected to the required form on another page.

Global Defaults

A few settings have global defaults set under Forms > Settings > Submit to Access. These defaults apply to all instances where Submit to Access is enabled and can be overwritten in each content’s settings.

Custom Access by Filter

The gpsa_has_access hook lets you use GP Submit to Access’ gating capabilities in your custom builds.

Settings

Required Forms

Choose which form(s) will give access to the gated content when submitted. If you select multiple forms, the visitor only needs to submit one of them to gain access.

Require Unique Submission

When enabled, visitors will need to submit the form on the specific page to access its protected content—submissions on other pages do not apply.

If not enabled, visitors will gain access to a page’s content if they submitted any of the required forms, regardless of where the submission was done from.

This setting won’t work if Requires Access Behavior is set to Redirect. More details.

Requires Access Behavior

Choose what happens when a visitor views content that is still gated—aka access has not yet been granted. These settings are the same between full pages and blocks unless otherwise specified.

Show Message

Displays a message in place of the gated content. Additional settings appear when this option is chosen.

Requires Access Message (Global Default Available)

The message the user will see if they don’t have access to the content. The form is automatically appended to the bottom of the message.

If you want to move the form, use the {form} merge tag to position it anywhere in the message.

If left blank, only the form will appear.

Gravity Forms does not support displaying the same form multiple times on a page. As such, if two or more blocks require the same form and are configured to display the form on-page, only the first block will display the form. All other blocks that are also configured to display the configured Requires Access Message will do so without the form.

Content Loading Message (Global Default Available)

The message that will be displayed while the submission is being processed and the content is being fetched.

Redirect (Full Page Exclusive)

Visitors without access will be instantly redirected to the form in a separate URL of your choosing. Click on “Add URL” to search your pages.

To redirect visitors back to the now un-gated content, you just need to redirect to the referrer URL after submission.

Hide Block (Block Exclusive)

Hides the gated block entirely. This can be useful if you’re gating multiple blocks on the same page.

Access Duration (Global Default Available)

  • Browser Session: After the visitor closes the browser, the granted access expires. If they access the site again, they will need to resubmit the form.
  • Forever: Access will last for a really long period of time. Granted, if a visitor clears their browser cookies, they will need to resubmit the form.
  • Custom: Set how many minutes, hours, days, weeks, months, or years the visitor will have access to the content.

Updating the Access Duration will not retroactively invalidate the duration of previously granted accesses. For example, if you were using a custom duration of 2 weeks and then you update it to Browser Session, visitors who submitted the form before the change will continue to have access until the original duration expires.

For logged-in users, you can choose to store access in the user meta via filter instead. To revoke access in that case, it will need to be deleted from their user profile.

Shortcode

The GP Submit to Access shortcode brings all functionality to a shortcode interface.

Shortcode Parameters:

  • required_form_ids: ID(s) of the required form(s).
  • requires_access_message: Message that appears before required form is submitted. Supports the {form} merge tag.
  • fallback_behavior: Choice whether to show_message or hide the element entirely.
  • access_duration_type: Choice of what kind of cookie is set between custom, session, or never.
  • access_duration_value: Number value of the cookie duration (e.g. 30).
  • access_duration_unit: Unit value of the cookie duration (e.g. seconds, minutes, hours, days).
  • content_loading_message: Message that appears while the content is being fetched after form submission.

Shortocode Examples:

[gpsa required_form_ids="1,2" requires_access_message="Submit this, please: {form}" fallback_behavior="show_message" access_duration_type="custom" access_duration_value="10" access_duration_unit="days" content_loading_message="Loading..."]Gated content.[/gpsa]
[gpsa required_form_ids="3" fallback_behavior="hide" access_duration_type="never"]Gated content.[/gpsa]

Known Limitations

  • The Require Unique Submission setting works on a per-form-per-page basis. Once a form is submitted for a page, all content from that specific page that was gated behind that specific form will become available.

    This causes the following known limitations:

    1. This setting won’t work if Requires Access Behavior is set to Redirect since the form is hosted on a separate page.
    2. If your use case utilizes multiple gated blocks or shortcodes on the same page and you’d like them to be made available separately, you’ll need to use different forms.
  • If a shortcode and block share the same Required Form ID, the block will always take precedent and display the form, no matter which order they are in the post. This is due to block processing happening before shortcode processing.

  • Shortcodes with identical content (i.e. [gpsa]{CONTENT}[/gpsa]) do not refresh properly after form submission. If your project requires this functionality, let us know.

Troubleshooting Issues

Coming soon from our legendary support team.

FAQ

You tell us! What do you want to know?

Translations

You can use the free Loco Translate plugin to create translations for any of our Perks. If you’ve never used Loco translate before, here’s a tutorial written for beginners.

Hooks

Gravity Forms has hundreds of hooks. Check out our Gravity Forms Hook Reference for the most thorough guide to Gravity Forms’ many actions and filters.


No related resources found.

Grab a bundle of free Gravity Forms plugins

Enter your email and receive our most popular free plugins and snippets, plus access to hundreds of others.

This field is for validation purposes and should be left unchanged.