If your membership site already runs Gravity Forms for your contact form or member support, you have most of what you need to launch a member content submission program, no new plugin required.

Gravity Forms’ Advanced Post Creation Add-On (included with the Pro and Elite licenses) turns any form into a post-creation engine. The trick is that Gravity Forms thinks in feeds, not just fields, which means one form can do different things based on who is submitting and what they pick. That makes it the right form builder for membership sites that want real moderation rules, level-based behavior, and custom post type support without writing custom code.

Here’s the full workflow we’ll build:

  • Configure the post submission form and the Create Post feed
  • Lock the form down to specific membership levels with PMPro
  • Set up moderation, submission limits, and on-site display

Let’s wire it up.

Banner image for the Member Submissions With Gravity Forms blog post — bold white headline reading "Member Submissions With Gravity Forms" centered over an overhead photo of hands typing on a laptop surrounded by pink peonies and desk accessories

How to Set Up Member Submissions With Gravity Forms

Make sure these plugins are installed and active before you start:

1. Build the Post Submission Form

Start with a blank form. Unlike WS Form, Gravity Forms doesn’t auto-generate a post submission template, you build it from form fields, then connect those fields to a post via a feed in the next step.

  1. Go to Forms > New Form in the WordPress admin and create a blank form.
  2. Add the fields you want members to fill in. A common starting set:
    • Single Line Text: post title
    • Paragraph Text (or Rich Text): post content
    • Drop Down or Checkboxes: categories
    • Multi Select: tags
    • File Upload (Image): featured image
  3. Save the form.
Screenshot of the Gravity Forms editor to create a new form

You’re not done yet. At this point you just have a generic form. Submissions go to entries, not posts. The next step is what makes the magic happen.

2. Add a Create Post Feed

A feed in Gravity Forms is a rule that says “when this form is submitted, do this thing.” The Advanced Post Creation Add-On adds a Create Post feed that maps form fields to a real WordPress post.

  1. With your form open, go to Settings > Post Creation
  2. Click Add New and give the feed a name.
  3. Choose the Post Type (a standard Post, or any custom post type you’ve registered).
  4. Map your form fields to Post Title, Post Body, Featured Image, Categories, and Tags.
  5. Set the default Post Status. We recommend starting with Pending Review or Draft (you can always loosen this later).
  6. Save the feed.
Screenshot of mapping the forms fields to a post

Note: Gravity Forms can also map to custom fields added by plugins like Advanced Custom Fields (ACF). The Create Post feed has its own Custom Fields section where you can connect any form field to any post meta key. This is a big deal if you’re storing structured data with the post, like book reviews, event listings, recipe submissions, or anything that benefits from real fields rather than a wall of body text.

3. Restrict the Form to Members With PMPro

A public submission form is an open invitation to spam. Lock it down before you launch.

PMPro gives you three ways to do that, and they stack. Pick the one that fits your site, or combine them.

Option A: Restrict the Whole Page

The cleanest setup. One page, one form, one membership requirement.

  1. Create a page in WordPress (e.g., “Submit Your Post”).
  2. Drop in the Gravity Forms shortcode: [gravityform id="1" title="false" description="false"]
  3. From the page editor, use the Require Membership meta box to require a specific membership level.
Screenshot of the new form in the WP editor using the Require Membership metabox to restrict the content of the entire page/post.

Option B: Hide the Form Block on a Mixed Page

If the submission form lives inside a page with other content (like a member dashboard), use block-level visibility instead of locking the whole page.

  1. Insert the Gravity Forms block inside a Content Visibility block.
  2. In the block sidebar, enable Content Visibility.
  3. Set which member levels can see the block.
Screenshot of adding the Gravity Form into a Content Visibility Block

Option C: Wrap the Shortcode

The classic, theme-agnostic approach. Works in classic editor, page builders, and template files.

[membership level="1"]
[gravityform id="1" title="false" description="false"]
[/membership]

Read more about the membership shortcode.

4. Walk Through the Member’s Experience

Don’t ship a submission flow you haven’t lived in. Test it as a non-admin before opening the doors.

Run through the full path with a fresh member account:

  • Sign up. Were the submission benefits visible on the pricing and checkout pages? If a member can’t tell that submitting content is part of the deal, they won’t use it.
  • Find the form. Is there a clear path from the member’s dashboard or the main nav to the submission page?
  • Submit. Fill the form out completely. Then try again with a missing required field. Are the validation messages helpful?
  • Verify the submission. If the form auto-publishes, check the post on the frontend. If it goes to Draft or Pending, log back in as admin and approve it.
  • Try as a non-member. Visit the submission page logged out, and again as a member without the right level. Confirm the form is hidden and membership is required.
Screenshot of the blog post table showing the member submission as a draft
Screenshot of the frontend page showing membership is required to submit a blog post

If anything in that walkthrough surprised you, fix it now. Members will not give you a second chance to make submission feel easy.

Members are the hub of your blog or news membership site.

Power Your Publishing with a Platform You Can Control

Paid Memberships Pro is the best tool for online publishers: an open source WordPress plugin that transforms your blog or news site into a revenue-generating platform.

Tailor your site to engage readers, monetize content, and grow a loyal subscriber base. Give your subscribers the premium content they seek and earn a reliable income with a totally independent online business.

Why This Matters: The Feed Model

Most form builders treat post creation as a single, fixed mapping: this field goes to this post property, end of story. Gravity Forms doesn’t.

Because submissions trigger feeds, you can:

  • Run multiple Create Post feeds on one form, each with conditional logic. Example: members at Level 1 submit posts that go to Pending Review. Members at Level 2 submit posts that auto-publish. Same form, two outcomes.
  • Branch by content type: submissions tagged “News” become Posts, submissions tagged “Event” become a custom post type.
  • Chain feeds with other Gravity Forms add-ons. The same submission can create a post and notify Slack and register the member for a related event.

That flexibility is why we keep recommending Gravity Forms for membership sites that have outgrown a basic submission flow. Once you start thinking in feeds, you stop hand-coding workflow rules.

Tuning the Workflow

The default setup will work for most sites. The settings below are where you go when you want more control over moderation, frequency, and presentation.

Setting the Default Post Status

The single most important setting on a member submission flow. Get it wrong, and member content goes live before you’ve reviewed it.

  1. Open the form and go to Settings > Post Creation.
  2. Edit your Create Post feed.
  3. Find the Post Status field.
  4. For most membership sites, choose Pending Review or Draft. Reserve Publish for trusted, high-tier members or content types where speed matters more than moderation.
  5. Save.
Screenshot of Gravity Form settings to set pending status for review

If you want different statuses for different member levels, add a second feed with conditional logic. That’s the feed model paying off.

Capping Submissions Per Member or Per Level

Gravity Forms doesn’t ship a built-in per-user submission limit, but two paths get you there.

Out of the box (form-wide limits): Under Form Settings > Form Options > Restrictions, you can require login to submit and set a global submission cap. Useful for time-bound calls for entries (e.g., a monthly contest), less useful for ongoing programs.

Screenshot of Gravity Form settings to restrict how many blog posts can be submitted within a time period

With Gravity Wiz: Gravity Wiz Limit Submissions is the perk to install if you want submission caps per user, per role, or over a rolling time period (e.g., “5 submissions per member, per month”). Worth the cost if member-submitted content is a core feature of your site.

By Membership Level With a Code Recipe

If you want PMPro level-aware limits without buying another perk, the same approach we documented in the WS Form guide works here. Use pmpro_hasMembershipLevel to count a member’s existing submissions, then strip the form out of the page once they hit their cap.

Reach out to our support team for help creating this snippet for Gravity Forms. We offer Do It For Me services for all members on a PMPro Max plan.

Showing Member Posts on the Frontend

Submissions are useless if no one sees them. A few options, ordered from least to most work:

  1. Lean on the existing post type archive. Standard posts get an archive at /blog/ for free. Custom post types may need an archive template, depending on your theme.
  2. Build a Query Loop block. The Block Editor’s Query Loop gives you a customizable, no-code feed. You can filter by category, author, post status, and more, perfect for a “Submitted by Members” page.
  1. Link to single posts. Whatever archive view you build, every entry should link to the full post. Sounds obvious. Skipped more often than you’d think.
  2. Drop in Posts Table by Barn2. A no-code table view with sorting and filtering.

What to Watch For After Launch

The first month of a member submission program is the most informative one you’ll have. Pay attention to:

  • Submissions per member. If one or two members are doing all the submitting, your form is too hidden or your other members don’t know they have permission. Both are fixable.
  • Approval queue depth. If pending submissions pile up, your moderation process needs help. Bring in a second moderator or relax the status default for trusted levels.
  • What members submit vs. what you expected. Your members will surprise you. Let the data shape your editorial direction instead of fighting it.

The setup is the easy part. The hard part is the editorial muscle to actually do something with what members give you.

If you have questions or want to compare notes on what’s working, our support team and the broader PMPro community are happy to dig in with you.



Was this article helpful?
YesNo