TutorialHow to Create a Public Submission Business Directory in WordPress (Gravity Forms + GravityView)

A public submission business directory lets visitors submit listings through a form, while you review and approve them before anything goes public. This is one of the most practical ways to build a user-submitted business directory in WordPress because you get the best of both worlds:

  • Visitors can submit listings without needing a WordPress account
  • You keep control, so your directory doesn’t turn into spam
  • Approved listings appear automatically in a searchable directory

This setup gives you a public submission business directory that stays clean, searchable, and fully moderated.

In this tutorial, we’ll build a Gravity Forms business directory powered by GravityView, including:

  • a public submission form
  • admin approvals
  • a searchable directory page
  • a single listing profile page

GravityView is built specifically to display, search, and filter Gravity Forms entries on the front end.

Public submission business directory overview (what you’re building)

What you need to build a public submission business directory

Quick glossary for beginners

Entry: One form submission (one business listing).
View (GravityView): The front-end directory page created from form entries.
Multiple Entries: The directory listing page (shows many results).
Single Entry: The profile page for one listing.
Entry Approval: A status that decides whether a listing is visible to the public.

Step 1: Public submission form for your business directory (Gravity Forms)

Go to Forms → New Form
Name it: Business Directory Submission

You’re creating the “source of truth” for your directory. Every listing that appears publicly later will come from this form.

1A) Add these fields (the exact structure we tested)

Public listing fields

  • Business Name (Single Line Text, Required)
  • Category (Drop Down, Required)
  • City (Single Line Text, Required)
  • Business Email (Email, Required, Visible later)
  • Phone (Phone, Optional)
  • Website (Website, Optional)
  • Short Description (Paragraph Text, Required)
  • Logo (File Upload, Optional)

Submitter and admin-only fields

  • Submitter Name (Name, Required)
  • Submitter Email (Email, Required)
  • Internal Notes (Paragraph Text, Optional, Admin-only)
  • Consent (Checkbox, Required)
Gravity Forms business directory submission form fields in WordPress
The submission form collects the listing info you’ll display later in the public directory.
Gravity Forms fields for website, short description, and logo upload
These fields power the listing card and the single listing profile page.
Submitter name, submitter email, internal notes, and consent checkbox in Gravity Forms
Submitter details help you follow up. Consent sets expectations that listings may be published after approval.

What to do and what not to do in Step 1

Do

  • Make the “must-have” business fields required (Name, Category, City, Email, Short Description).
  • Keep the form short enough to finish.
  • Add consent if listings will be public.

Don’t

  • Collect sensitive info you don’t plan to display.
  • Publish internal notes or submitter email publicly.

Why Step 1 matters (in plain English)

This form is the foundation of your directory. If the form is messy or missing key fields, your directory will look incomplete later. Getting the form right first makes everything else easier, because GravityView can only display what the form captures.

Step 2: Public submission business directory confirmation message

Go to Settings → Confirmations
Use a clear message like:

Thanks! Your business listing is pending review. Once approved, it will appear in the directory.

Gravity Forms confirmation message for pending business directory submission
A clear confirmation reduces confusion and prevents “Did you receive it?” emails.

Why Step 2 matters for your Public Submission Business Directory

When people submit a listing, they need clarity right away. A good confirmation message prevents support headaches and helps users understand that the listing won’t appear instantly because it still needs approval.

Step 3: Public submission business directory notifications (admin + submitter)

Go to Settings → Notifications and create two notifications:

3A) Admin notification (new submission)

Purpose: you get alerted so you can review and approve quickly.

  • Send to: admin email
  • Subject: New Business Submission: {Business Name}
  • Message: include Business Name, Category, City, Business Email, Phone, Website

3B) Public Submission Business Directory Submitter notification (we received it)

Purpose: confirmation and trust.

  • Send to: Submitter Email field
  • Subject: We received your business listing
  • Message: thank them, explain the review step, mention it goes live after approval
Gravity Forms notifications setup for business directory submission form
One notification alerts the admin. Another confirms the submission to the submitter.

Why Step 3 matters for Public Submission Business Directory

Public submission directories work best when they’re responsive. Notifications keep the process moving so submissions don’t sit in “pending” forever, and submitters don’t feel ignored.

Step 4: Create a GravityView business directory (your public directory page)

Now you’ll turn form entries into a front-end directory page.

Go to GravityView → New View

  • Select the form: Business Directory Submission
  • Choose View type: List

GravityView’s “Views” are the feature that lets you display Gravity Forms entries on the front end as directories, profiles, and searchable listings.

Why Step 4 matters in Public Submission Business Directory

At this point, your form is collecting data, but visitors can’t browse it yet. The View is what creates the actual public directory experience. No View means no directory.

If you need help embedding forms on pages, see: Gravity Forms shortcode guide

Step 5: GravityView directory layout (Multiple Entries listing page)

This is the main directory page that shows multiple listings.

Recommended layout (matching what we built and tested):

Listing Title

  • Business Name

Subheading

  • Category
  • City

Image

  • Logo

Other Fields

  • Short Description
  • Business Email (visible)
  • Phone
  • Website

Footer Right

  • Link to Single Entry (“View details”)
GravityView multiple entries layout for business directory listing cards
The Multiple Entries layout controls what shows on each listing “card” in the directory.
GravityView Multiple Entries footer layout showing City on the left and Link to Single Entry on the right, with Page Links widget enabled.
Footer fields and widgets add navigation and a “View details” link, letting visitors open the full business profile and move through directory pages easily.

Why Step 5 matters

This is what users judge in five seconds. A good listing card layout makes the directory easy to scan. If it’s too crowded, people won’t browse. If it’s too thin, listings won’t feel useful.

Step 6: GravityView directory profile page (Single Entry layout)

This is the “full details” page for one business.

Add these fields:

  • Business Name
  • Category
  • City
  • Logo
  • Short Description
  • Business Email (visible)
  • Phone
  • Website
GravityView single entry layout for a business profile page
The Single Entry layout is the listing profile page visitors see after clicking “View details.”
GravityView Single Entry layout showing Logo, Short Description, Business Email, Phone, and Website fields, plus City in the footer section.
The Single Entry layout controls the full business profile page, where visitors can read the description and use the contact details after clicking into a listing.

Why Step 6 matters

A directory listing card is for scanning. The single entry page is for decision-making. This is where someone decides to contact the business, visit the website, or save the listing.

Step 7: Public submission business directory moderation settings

Go to your View settings: View Settings
Enable: Show only approved entries

This setting prevents pending or disapproved entries from appearing publicly.

GravityView show only approved entries setting enabled
This one setting is what makes your public submission business directory moderated instead of automatic. This is the key moderation setting that keeps your public directory clean.

Why Step 7 matters

This single checkbox is what turns a normal directory into a moderated public submission directory. Without it, every submission could show publicly right away, which is usually how spam gets in.

Step 8: Test your public submission business directory (end-to-end)

This testing section is longer on purpose. It’s the part most people rush, and it’s where small setup mistakes show up.

8A) Submit 2 to 3 test listings in Public Submission Business Directory (incognito window)

Open an incognito/private window and submit a few listings.

Why incognito?
Because it shows you what normal visitors see. No admin cookies, no logged-in permissions, no “it works for me” false positives.

What to submit (simple test plan)

  • One listing with a logo
  • One listing without a logo
  • One listing with a longer description

This helps you verify your directory looks good even when users leave optional fields blank.


8B) Visit the directory page (still incognito)

Expected result: nothing appears yet, because nothing is approved.

Public business directory shows no entries before admin approval
Before approval, the directory should not show public listings.

If you still see entries here:
That usually means “Show only approved entries” is not enabled, or you’re still logged in somewhere.


8C) Approve entries as admin (this is the moderation step)

Go to: Forms → Business Directory Submission → Entries

You’ll see the Entry Approval column. Entries start as pending and can be approved with the icon. GravityKit’s docs explain the approval behavior and visibility impact.

Gravity Forms entries list showing pending approval status for directory submissions
New submissions start as pending. They won’t appear publicly until you approve them.
Gravity Forms entries list showing an approved entry with green check
Once approved, the entry becomes eligible to appear in the public GravityView directory.

Practical tip:
Approve only one entry first so you can clearly confirm the directory is behaving correctly.


8D) Refresh the directory page (incognito)

Expected result: the approved entry now appears publicly.

Public business directory showing one approved listing
After approval, the listing appears automatically on the front end.

Then approve the rest and refresh again:

Public business directory showing three approved business listings
Your public submission directory is working correctly: approved entries appear publicly.

If approval does not show right away:
Check if caching is enabled in the View settings. Caching can delay visible changes until the cache expires or is cleared.


8E) Test search and filters (so it feels like a real directory)

Your directory includes a Search Bar widget. GravityView supports a “Search Everything” field and additional field filters you can add.

What to test

  • Search by keyword: type Harbor and search
  • Filter by Category (Restaurant)
  • Filter by City (Cebu City)
GravityView business directory keyword search returning one matching listing
Search makes a directory usable. Visitors should be able to find listings fast.

Why this test matters:
A directory without search becomes frustrating as it grows. This confirms your directory will still be usable when you have 100 listings, not just 3.

8F) Test the single listing page (profile page)

Click View details or click the business name.

Expected: it opens the single entry page and displays full details.

Single business listing profile page with logo, description, email, phone, website
The single entry page is the “profile” view where visitors see full listing details.

Why this test matters:
It confirms your directory isn’t a dead end. Visitors can browse listings, then click through to a complete profile page with contact details.

Step 8 wrap-up (why testing matters so much)

Testing isn’t just checking “it works.” It’s confirming that:

  • unapproved submissions stay private
  • approved entries appear publicly
  • the directory is searchable
  • the profile page is accessible
  • optional fields (like logo) don’t break the layout

Once those are true, your public submission directory is ready for real users.

Before you launch: a quick final checklist (so your directory stays clean)

At this point, your public submission business directory is working. Before you share the directory publicly, do one last pass on the “real-world” details that usually get missed.

1) Confirm your moderation is actually enforced

Make sure your GravityView directory is still set to show only approved listings.

  • Go to GravityView → Edit your View → View Settings
  • Confirm Show only approved entries is enabled

Why this matters: this is the difference between a moderated directory and a directory that publishes everything instantly. If this is off, spam and junk listings can show publicly right away.

2) Double-check what you’re showing publicly

In our build, we made Business Email visible in the listing card and the single entry page. That’s fine for testing, but for a real directory, decide if you want that.

Ask yourself:

  • Do I want emails visible publicly?
  • Or should I show only Website and Phone?
  • Or do I want people to contact businesses another way?

Why this matters: public emails can attract spam once your site starts getting traffic. If your directory is meant to be public-facing, you want it to be useful without creating problems later.

3) Check how the directory looks when fields are empty

Even if your form has required fields, users will often skip optional fields like Logo or Phone.

Do a quick sanity check:

  • a listing with a logo
  • a listing without a logo
  • a listing with a short description
  • a listing with a longer description

Why this matters: a directory that looks good only when every field is filled out will look messy in production. Testing “incomplete” listings helps you catch layout issues early.

4) Confirm search is doing what people expect

Your directory already has search and filters. Use them like a visitor would.

Try:

  • searching by business name (example: Harbor)
  • filtering by Category
  • filtering by City

Why this matters: search is what makes a directory feel usable. Without it, a directory becomes harder to navigate the moment you have more than a handful of listings.

Common issues and quick fixes (so you don’t get stuck)

“My listings are showing even when they are not approved.”

Most likely cause: the View is not restricted to approved entries.

Fix:

  • Go to GravityView → Edit View → View Settings
  • Enable Show only approved entries

“I approved an entry, but it still doesn’t show on the directory.”

Most likely cause: caching is delaying what you see.

Fix:

  • refresh the page
  • temporarily disable caching in the View settings while testing, or clear cache if needed

“My logo looks too big or awkward.”

Most likely cause: image width settings need adjustment.

Fix:

  • click the gear icon beside the Logo field in the View layout
  • adjust the image width until it fits your card layout cleanly

“Search doesn’t return results.”

Most likely cause: you’re searching fields that aren’t included, or you didn’t add the search widget correctly.

Fix:

  • confirm the Search Bar widget is added to the View
  • test simple keywords first (like part of a business name)

Final recap: what you built and what to do next

You now have a public submission business directory that collects submissions privately and publishes only approved listings.

That setup gives you the best balance between openness and control:

  • people can submit listings without an account
  • you review entries before anything goes live
  • the directory stays clean, searchable, and useful as it grows

If you want to take it further, the next logical upgrades are improving styling, adding stronger spam protection, and refining what contact information you display publicly.

Want approvals to be fully workflow-based later? See: Gravity Flow workflow steps guide

Proudly powered by WordPress