WordPress ships with a registration page that looks like it was designed in 2005 — because it was. A single username field, a password field, and absolutely zero room for customization. If you need to collect additional profile data, assign specific user roles, or gate registration behind a payment, the default WordPress signup form is not going to cut it.
Gravity Forms changes that equation entirely. The User Registration Add-On transforms any Gravity Forms form into a full-featured registration system where you control every field, every workflow, and every detail of the user experience. From simple newsletter signups to complex membership portals with paid access tiers, Gravity Forms handles the user lifecycle without requiring a single line of code.
This guide walks through the entire process: building registration forms from scratch, creating custom login pages, setting up profile editing, configuring email activation, managing user roles, and integrating payments. Whether you are building a client portal, a membership community, or an employee onboarding system, you will find a practical, step-by-step workflow here.
What You Need Before Starting
The User Registration Add-On requires an active Gravity Forms Elite license. It is not available on Basic or Pro plans. Before diving in, confirm you have these components installed and activated:
- Gravity Forms plugin (version 2.9 or later recommended)
- User Registration Add-On (version 5.4+, released March 2025)
- WordPress 6.4 or later (for full block editor compatibility)
- An SMTP plugin like WP Mail SMTP, FluentSMTP, or the Gravity Forms Mailgun/SendGrid/Postmark add-ons (for reliable email delivery during activation workflows)
To install the User Registration Add-On, navigate to Forms → Add-Ons in your WordPress dashboard, locate “User Registration” in the list, and click Install. Activate the add-on once installation completes.
Building Your First Registration Form
Start by creating a new form: Forms → New Form. Gravity Forms includes a pre-built User Registration Form template that provides a solid starting point with username, email, name, and password fields already configured. You can also start from a blank form and add fields manually.
Essential Fields for Registration
Every registration form needs at minimum:
- Email — Used as the primary identifier and for activation emails
- Username — The WordPress login name (use the dedicated Username field type)
- Password — Use Gravity Forms’ Password field, which includes built-in confirmation matching
Beyond those basics, add fields that match your use case. A membership site might include:
- Name (first and last)
- Display name preference
- Website URL
- Biographical text (paragraph field)
- Profile photo (file upload field)
- Role selection (dropdown, if you allow users to choose their account type)
Configuring the User Registration Feed
The registration feed is where Gravity Forms connects form submissions to WordPress user creation. Navigate to your form’s Settings → User Registration and click Add New. The official documentation covers every feed setting in detail.
The feed configuration screen presents several critical settings:
- Action: Choose “Create User” for new registrations or “Update User” for profile editing forms
- User Role: Select the default WordPress role assigned to new registrants (Subscriber, Contributor, Author, etc.)
- Field Mapping: Map each form field to its corresponding WordPress user data field:
- Email field → Email
- Username field → Username
- Password field → Password
- Name field → First Name / Last Name
- Custom Meta: Map additional form fields to WordPress user meta keys. This is how you store data like phone numbers, company names, or membership preferences directly on user profiles
- User Activation: Enable manual or email activation to verify new accounts (covered in detail below)
Conditional Registration Feeds
Need different user roles based on form selections? Create multiple registration feeds with conditional logic. For example:
- Feed 1: If “Account Type” dropdown equals “Freelancer,” assign the Contributor role
- Feed 2: If “Account Type” dropdown equals “Agency,” assign the Editor role
- Feed 3: If “Account Type” dropdown equals “Enterprise,” assign a custom role
Gravity Forms processes feeds in order and applies the first matching condition. Make sure your routing rules cover every possible selection to avoid scenarios where no feed matches and no user account is created. If you have experienced conditional logic issues with WordPress forms, our troubleshooting guide can help.
Creating Custom Login Forms
The User Registration Add-On includes built-in login form functionality. You have three approaches, each suited to different scenarios.
Method 1: The Login Shortcode (Fastest Setup)
Insert this shortcode into any page or post using the Shortcode block:
This generates a complete login form with username, password, a “remember me” checkbox, a password reset link, and a registration link. Customize the display text through the shortcode parameters.
Method 2: The Login Widget
The add-on also registers a Login widget that you can place in any widget area (sidebar, footer, header). Navigate to Appearance → Widgets, find the Login widget, and drag it to your desired area. The widget displays a login form for logged-out visitors and a custom welcome message for authenticated users.
Method 3: Block Editor Integration
For full control over login form placement without shortcodes, our User Registration Block for Gravity Forms provides a native Gutenberg block. Search for “User Registration” in the block inserter, drop it onto any page, and configure display settings visually in the block editor — no shortcodes or code required. This free plugin from Odd Jar eliminates the guesswork of shortcode parameters and gives you a live preview of the login form while editing.
Redirecting Users After Login
By default, WordPress redirects users to the admin dashboard after login. For most front-facing sites, that is a poor user experience. Configure login redirects by:
- Using the shortcode’s tabindex parameter to control form behavior
- Adding a redirect URL via the Gravity Forms confirmation settings on the login form
- Using a plugin like Peter’s Login Redirect for role-based redirects (e.g., send Subscribers to their profile page, send Editors to the post list)
Setting Up Email Activation
Email activation adds a verification step between form submission and account creation. This is essential for preventing spam registrations and verifying that users own the email address they provide.
Enabling Activation
In your User Registration feed settings, look for the User Activation section. You have two options:
- Email Activation: Sends an automated email with an activation link. The user must click the link before their account becomes active
- Manual Activation: Requires an administrator to manually approve each registration from the WordPress admin panel
When email activation is enabled, submitted registrations appear as “pending” in Forms → User Activation until the user confirms. You can customize the activation email content, including the subject line and body text, using merge tags.
Why SMTP Matters for Activation
WordPress’s default wp_mail() function uses PHP’s mail function, which many hosting providers throttle or disable entirely. If activation emails are not arriving, the problem is almost certainly email delivery, not the add-on. Our guide on fixing WordPress contact form email issues covers the most common causes. Install an SMTP plugin (WP Mail SMTP is the most popular choice) and configure it with a transactional email service like Mailgun, SendGrid, or Postmark. Gravity Forms also offers first-party add-ons for all three services.
Building Profile Editing Forms
Registration is only the beginning. Users need the ability to update their information after signing up. The User Registration Add-On supports this through Update User feeds.
Creating an Update Feed
- Create a new form (or duplicate your registration form and modify it)
- Remove the Username and Password fields (these should not be editable through a form)
- Keep fields you want users to update: name, email, website, bio, custom meta
- Go to Settings → User Registration → Add New
- Select “Update User” as the action
- Under “User to Update,” select “Current User” (for logged-in users editing their own profile)
- Map form fields to the corresponding user data fields
Pre-Populating Fields with Existing Data
For a good user experience, the profile form should load the user’s current data. Enable dynamic population on each field and use Gravity Forms’ built-in user meta population to auto-fill fields with the logged-in user’s existing values. The User Registration Add-On handles this automatically when the “Update User” feed is configured for the current user.
Restricting Profile Forms to Logged-In Users
Profile editing forms should only be accessible to authenticated users. Use Gravity Forms’ built-in Require Login setting or wrap the form in a conditional check. You can also set a custom message for logged-out visitors directing them to the login page.
Managing User Roles and Permissions
User role assignment is one of the most powerful aspects of the registration workflow. However, there are important nuances to understand.
Single Role Assignment
By default, each registration feed assigns one WordPress role. The most common approach is to assign all new registrations the Subscriber role and then manually upgrade users as needed.
Dynamic Role Assignment
For sites that need different roles based on registration data, create multiple feeds with conditional logic (as described above). Each feed targets a specific role based on the user’s selections.
Important limitation: The User Registration Add-On assigns roles but does not create custom roles or manage permissions. If you need custom roles beyond WordPress defaults, install a role management plugin like Members or User Role Editor first, then reference those custom roles in your registration feeds.
Role Assignment with Payments
When paired with a payment add-on (Stripe, PayPal Checkout, or Square), you can gate registration behind a payment. The registration feed processes only after successful payment, so you can assign premium roles exclusively to paying users. This is the foundation of a paid membership system without requiring a dedicated membership plugin. Our Gravity Forms payment integration guide covers the full setup for each gateway.
Integrating Payments with Registration
The combination of User Registration and payment add-ons creates a complete membership onboarding flow.
One-Time Registration Fees
- Add a Product field to your registration form with your registration fee
- Add a Credit Card or payment field (Stripe Card field recommended)
- Configure a payment feed in Settings → Stripe (or your payment add-on of choice)
- Set the User Registration feed’s conditional logic to process only when payment status equals “Paid”
Recurring Subscriptions
For subscription-based memberships, configure the payment feed as a “Subscription” rather than a one-time “Product and Services” transaction. The Stripe Add-On supports recurring billing natively, creating a complete membership subscription system within Gravity Forms.
Handling Failed Payments
When payment fails, the registration feed should not process. Configure your feed conditions so the user account is only created upon successful payment. This prevents orphaned user accounts from accumulating in your WordPress database.
Reducing Registration Spam
Custom registration forms are not immune to bot submissions. Layer multiple anti-spam measures. For a comprehensive breakdown, see our WordPress form spam prevention guide.
- Google reCAPTCHA v3: Gravity Forms has built-in reCAPTCHA support. Add a CAPTCHA field to your registration form
- Cloudflare Turnstile: A privacy-friendly invisible challenge that blocks sophisticated bots without user interaction
- Akismet integration: Enable Akismet spam filtering on your form’s settings to catch sophisticated spam that bypasses CAPTCHA
- Honeypot fields: Gravity Forms includes a built-in anti-spam honeypot (enabled by default in recent versions)
- Email activation: Requiring email verification before account creation eliminates most bot registrations
- Conditional logic: Add a simple question or checkbox that humans easily answer but bots typically miss
BuddyPress and Community Integration
For sites building social communities, the User Registration Add-On integrates with BuddyPress (and its successor, BuddyBoss). During feed configuration, you can map form fields directly to BuddyPress extended profile fields, populating community profiles at the moment of registration.
Version 5.4 of the User Registration Add-On (March 2025) fixed a notable issue where BuddyPress field creation failed when using the “Add Custom Key” feature. If you experienced problems with BuddyPress integration previously, update to the latest version.
WordPress Multisite Registration
Running a WordPress Multisite network? The User Registration Add-On can automatically create new sites when users register. This is particularly useful for:
- SaaS-style platforms where each customer gets their own site
- Educational institutions creating student portfolios
- Agency networks provisioning client sites
Enable this in the registration feed under the “Create Site” option. Map form fields to the new site’s title, URL, and template settings.
Common Mistakes and How to Avoid Them
After years of working with Gravity Forms registration workflows, these are the issues that trip up the most users:
1. Routing Rules That Do Not Cover All Options
If your conditional feeds do not account for every possible form selection, some submissions will create no user account at all. Always include a catch-all feed with no conditions as a fallback.
2. Forgetting to Configure SMTP
Email activation will fail silently if your server cannot send email reliably. Test your email delivery before launching the registration form. The Gravity Forms Logging Add-On can help you identify notification delivery failures.
3. Duplicate Username or Email Conflicts
WordPress requires unique usernames and email addresses. If a user tries to register with an existing username or email, they will see an error. Consider using the email address as the username (map both fields to the same form field) to reduce confusion.
4. Not Testing the Full Workflow
Register a test user through the complete flow: form submission, activation email, email click, login, and profile update. Test with different browsers and email providers. A broken activation link discovered after launch means lost registrations.
5. Ignoring Password Security
The Gravity Forms Password field includes built-in strength validation. Enable the password strength meter and set a minimum strength requirement. Weak passwords are the single largest security vulnerability in user registration systems. See our Gravity Forms security hardening guide for additional security best practices.
Monitoring Registration Activity
Once your registration system is live, you need visibility into how it performs. Gravity Forms entries provide a complete audit trail of every registration attempt, but raw entries alone do not tell the full story.
Track key metrics to understand your registration funnel:
- Registration form views vs. submissions — Your conversion rate reveals friction points
- Activation email open rates — Low rates suggest deliverability problems or unclear subject lines
- Pending vs. activated accounts — A high pending-to-active ratio means users are dropping off after registration
- Registration form field abandonment — Identifies which specific fields cause users to quit. Our form abandonment recovery guide covers strategies to recapture lost submissions
Our Form Analytics Pro for Gravity Forms provides exactly this kind of visibility. It tracks conversion rates, field-level abandonment, and active form sessions for every Gravity Forms form — without requiring Google Analytics configuration. You see which fields cause users to leave, how long people spend on each step, and where your registration funnel leaks. Zero configuration required: install, activate, and analytics start collecting immediately.
Know Exactly How Your Registration Forms Are Performing
Our Form Analytics Pro gives you conversion rates, abandonment tracking, and field-level analytics for every Gravity Forms form — zero configuration required. No Google Analytics needed.
Putting It All Together: A Complete Registration System
Here is the recommended architecture for a production-ready Gravity Forms registration system:
- Registration form with username, email, password, name, and any custom fields your use case requires
- Email activation enabled to verify accounts and block spam
- SMTP configured through a transactional email service for reliable delivery
- Custom login page using the login shortcode, the Login widget, or our User Registration Block for Gravity Forms
- Profile editing form with an Update User feed pre-populated with current user data
- Anti-spam layers combining reCAPTCHA, honeypot, and email activation
- Analytics tracking to monitor registration conversion rates and identify drop-off points
This architecture scales from a simple blog with registered commenters to a full membership portal with paid tiers, role-based access, and community features. Every component uses native Gravity Forms functionality with zero custom code.
The User Registration Add-On has been available since Gravity Forms’ early days, and it remains one of the most practical reasons to choose an Elite license. For any WordPress site where users need accounts — whether that is ten users or ten thousand — Gravity Forms provides a registration workflow that is more flexible, more customizable, and more integrated than any standalone registration plugin.

