Email Verification

5 min read

Verify user email addresses before allowing them to log in or complete checkout. This feature helps prevent fake accounts, reduces spam registrations, and ensures you can communicate with your customers.


Overview #

Email Verification requires users to confirm their email address by clicking a verification link sent to their inbox. Until verified, users cannot log in to your site or complete certain actions.

Key Benefits

  • Eliminate fake accounts – Only real users with valid email addresses can register
  • Reduce spam registrations – Bots can’t complete the verification process
  • Improve deliverability – Verified emails mean fewer bounces when sending marketing emails
  • Protect your store – Prevent fraudulent orders from unverified email addresses
  • Build trust – Verified users are more engaged and trustworthy

Getting Started #

Step 1: Enable Email Verification

  1. Navigate to Swift Commerce → Spam → Email Verification in your WordPress admin
  2. Toggle the Enable Email Verification switch to ON
  3. Select which registration forms should require verification
  4. Click Save Settings

Step 2: Configure Verification Locations

Choose where email verification should be required:

  • WordPress registration form
  • WooCommerce My Account registration
  • Guest checkout (Pro)
  • Logged-in checkout (Pro)

Step 3: Customize the Email (Optional)

Personalize the verification email with your branding and messaging using the Customization tab.


Settings Tab #

The Settings tab allows you to configure when and how email verification is required.

Verification Settings

LocationDescriptionVersion
WordPress RegistrationDefault WordPress registration form (wp-login.php?action=register)Free
WooCommerce My AccountRegistration form on the WooCommerce My Account pageFree
Guest CheckoutRequire email verification before guest customers can complete checkoutPro 🔒
Logged-in CheckoutRequire verified email for logged-in users at checkoutPro 🔒

How Each Location Works

WordPress Registration

  • User registers → Verification email sent → User must verify before logging in
  • Login attempts show “Please verify your email” message

WooCommerce My Account

  • User registers on My Account page → Verification email sent → Must verify before logging in
  • Auto-login after registration is disabled

Guest Checkout (Pro)

  • Guest enters email at checkout → Verification required → Order only processes after verification
  • Prevents orders with fake email addresses

Logged-in Checkout (Pro)

  • Customer with unverified email tries to checkout → Prompted to verify first
  • Ensures all orders have valid contact emails

Skip Verification for Roles

Select user roles that should bypass email verification entirely.

RoleDescription
AdministratorFull site access (recommended to skip)
EditorCan publish and manage all posts
AuthorCan publish and manage own posts
ContributorCan write but not publish posts
SubscriberCan only manage their profile
CustomerWooCommerce customer role
Shop ManagerWooCommerce store manager

💡 Tip: It’s recommended to skip verification for Administrator and Shop Manager roles to prevent lockout scenarios.


Link & Limits (Pro) 🔒

Available with Swift Commerce Pro

Verification Link Expiry

OptionDescription
1 hourVery short – for high-security scenarios
3 hoursShort window
6 hoursHalf day
12 hoursModerate
24 hoursRecommended default
48 hoursExtended window
72 hoursMaximum flexibility

💡 Tip: 24 hours gives users enough time to check email while maintaining security. Shorter times are better for high-security sites.

Resend Email Limit

Control how many times users can request a new verification email.

OptionDescription
UnlimitedNo restrictions on resending
3 timesRecommended – prevents abuse
5 timesMore lenient
10 timesVery lenient

Auto-delete Unverified Users

Automatically remove users who never verify their email.

OptionDescription
NeverKeep unverified users indefinitely
24 hoursVery aggressive cleanup
48 hoursAggressive cleanup
72 hoursModerate cleanup
7 daysRecommended balance
14 daysLenient
30 daysMaximum time before cleanup

⚠️ Warning: Deleted users cannot be recovered. Choose a time period that gives legitimate users enough time to verify.


Customization Tab #

Personalize the verification email sent to users.

Email Template

Email Subject

The subject line of the verification email. Example:

Email Body

The main content of the verification email. Use placeholders to personalize the message.

Available Placeholders

PlaceholderDescriptionExample Output
{{user_name}}User’s display nameJohn Doe
{{user_email}}User’s email addressjohn@example.com
{{verification_link}}The clickable verification linkhttps://yoursite.com/?verify=abc123
{{site_name}}Your website nameMy Awesome Store
{{site_url}}Your website URLhttps://yoursite.com
{{expiry_time}}Time until link expires24 hours

Default Email Template

Subject:

Body:

Preview Email

Use the Preview button to see how your email will look with sample data before saving.

Branding (Pro) 🔒

OptionDescription
Disable “Powered by Swift Commerce”Remove the Swift Commerce branding from the footer of verification emails

Pending Users Tab (Pro) 🔒 #

Available with Swift Commerce Pro

View and manage users who are waiting for email verification.

User List

The pending users table shows:

ColumnDescription
UsernameThe user’s login name
EmailThe email address awaiting verification
RegisteredDate and time of registration
ExpiresWhen the verification link expires
StatusActive or Expired badge
ResendsNumber of times verification was resent

Individual Actions

ActionDescription
VerifyManually mark the user as verified (bypasses email)
ResendSend a new verification email to the user
DeleteRemove the user account entirely

Bulk Actions

Select multiple users and perform actions on all at once:

ActionDescription
Bulk VerifyVerify all selected users
Bulk DeleteDelete all selected users

Search & Filter

Use the search box to filter users by email or username.


How It Works #

Registration Flow

  1. User submits registration form
  2. Account is created with “unverified” status
  3. Verification email is sent automatically
  4. User clicks the verification link
  5. Account status changes to “verified”
  6. User can now log in

Verification Link Format

The token is a unique 64-character string that expires based on your settings.

What Users See

Before Verification (Login Attempt):

⚠️ Email not verified!
Please verify your email address before logging in. Check your inbox for the verification link.

After Clicking Verification Link:

✅ Email verified!
Your email has been verified. You can now log in.


Troubleshooting #

Common Issues

IssueCauseSolution
Verification email not receivedEmail deliverability issueCheck spam folder, configure SMTP plugin, verify email settings
“Link expired” errorUser waited too longAdmin can resend verification or increase expiry time
User can’t log in after verifyingBrowser cache issueClear cookies and try again
Admin locked outVerification enabled for administratorsAccess database, set _swift_commerce_email_verified meta to 1
Verification email shows raw HTMLEmail client issueTest with different email provider

Testing Verification

  1. Create a test user account
  2. Check inbox for verification email
  3. Click the verification link
  4. Try logging in
  5. Verify the success message appears

Email Deliverability Tips

  1. Use an SMTP plugin – WP Mail SMTP, FluentSMTP, or similar
  2. Configure SPF/DKIM/DMARC – Ask your email provider for records
  3. Use a transactional email service – SendGrid, Mailgun, Amazon SES
  4. Test your emails – Use mail-tester.com to check spam score

Best Practices #

Recommended Configuration

SettingRecommended Value
WordPress Registration✅ Enabled
WooCommerce My Account✅ Enabled
Skip RolesAdministrator, Shop Manager
Link Expiry24 hours
Resend Limit3 times
Auto-delete7 days

Security Tips

  1. Don’t skip customer role – Always verify customer emails
  2. Use reasonable expiry – 24-48 hours is ideal
  3. Enable auto-delete – Clean up fake registrations automatically
  4. Monitor pending users – Check regularly for suspicious patterns
  5. Test with SMTP – Ensure emails are actually delivered

Frequently Asked Questions #

What happens to existing users?

Existing users (registered before enabling verification) are automatically considered verified and won’t be affected.

Can users resend the verification email themselves?

Not from the frontend currently. Admins can resend from the Pending Users tab (Pro).

Will this work with social login plugins?

Yes! Users who register via social login (Google, Facebook, etc.) typically have pre-verified emails. The verification meta will be set appropriately.

Does it work with multisite?

Email Verification works on individual sites. Settings are not shared across the network.

What if I lock myself out?

If you’re locked out:

  1. Access your database via phpMyAdmin
  2. Find the wp_usermeta table
  3. Locate your user’s _swift_commerce_email_verified meta
  4. Set the value to 1

Feature Comparison #

FeatureFreePro
WordPress Registration
WooCommerce Registration
Skip Roles
Email Customization
Email Preview
Guest Checkout Verification
Logged-in Checkout Verification
Link Expiry Control
Resend Limit Control
Auto-delete Unverified
Pending Users Management
Bulk Actions
Remove Branding

Updated on December 28, 2025
Scroll to Top