User Registration Management (Pro)

Version: 1.2.1 ProLast Updated: December 2025Difficulty: IntermediateTime Required: 40 minutes

Overview

User Registration Management in Attributes User Access Pro provides advanced control over how users sign up for your site, including custom registration fields, approval workflows, and flexible username generation methods.

Why Use Advanced Registration?

✓ Collect Custom Data

Gather additional information during registration like company name, phone number, or custom identifiers.

✓ Control User Access

Require admin approval before users can access your site.

✓ Flexible Registration Methods

Choose username-only, email-only, or both based on your needs.

✓ Professional Experience

Create polished registration forms matching your brand.

Accessing Registration Settings

Navigate to:


WordPress Admin → Settings → Attributes User Access → User Settings → Registration

Registration Method Options

Username Only

Users register with a username and provide email separately.

Best for:

  • Traditional forum-style sites
  • Gaming communities
  • Sites where anonymity is valued
  • Platforms with public usernames

Configuration:

Registration Method: Username Only

☑ Require email address

☑ Validate email domain

☐ Block disposable email addresses

User experience:

Username: johndoe *

Email: john@example.com *

Password: *

Confirm Password: *

Email Only

Users register with email address, username generated automatically.

Best for:

  • Business applications
  • Professional services
  • E-commerce sites
  • Membership sites

Configuration:

Registration Method: Email Only

Username Generation: [Auto-generate from email]

☑ Validate email domain exists

☑ Block disposable email addresses

☑ Require email verification

User experience:

Email: john@example.com *

Password: *

Confirm Password: *

(Username auto-generated: john_doe_1234)

Both Username and Email

Users provide both username and email (WordPress default).

Best for:

  • Social networks
  • Community platforms
  • General-purpose websites
  • Sites needing both identifiers

Configuration:

Registration Method: Both

☑ Require unique username

☑ Require unique email

☑ Username minimum length: 4 characters

Username Generation Methods

For Email-Only Registration

Option 1: Email-Based (Recommended)

Email: john.doe@company.com

Generated Username: john_doe

Process:

  • Extract name before @ symbol
  • Replace dots with underscores
  • Remove special characters
  • Add number if username exists

Option 2: Random String

Email: user@example.com

Generated Username: user_x9k2m7p4

Process:

  • Start with “user_”
  • Add 8 random alphanumeric characters
  • Guaranteed unique

Option 3: Custom Prefix

Email: jane@example.com

Prefix: “member”

Separator: “-”

Generated Username: member-jane-5832

Configuration:

Custom Prefix: [member]

Separator: [- (hyphen)]

Add Random Numbers: [Yes]

Configuration Steps

Step 1: Choose generation method

  • Go to User Settings → Registration
  • Select “Email Only” registration
  • Choose username generation:

○ Email-Based (Recommended)

○ Random String

○ Custom Prefix

Step 2: Configure custom prefix (if selected)

Custom Prefix: member

Separator Options:

○ Underscore (_)

○ Hyphen (-)

○ Dot (.)

Add Random Number: Yes (prevents conflicts)

Number Length: [4] digits

Step 3: Test generation

Test Email: test@example.com

Preview Username: member-test-4721

[Generate Preview]

Custom Registration Fields

Adding Custom Fields

Field types available:

  • Text input
  • Email input
  • Phone number
  • Dropdown/Select
  • Checkbox
  • Radio buttons
  • Textarea

Field Configuration

Via Shortcode:

[attrua_register custom_fields=”company:text:required,phone:tel:optional”]

Shortcode syntax:

field_name:field_type:required|optional

Common Custom Field Examples

Example 1: Company Information

[attrua_register custom_fields=”company_name:text:required,industry:select:optional”]

Renders as:

Company Name: [___________] *

Industry: [Select Industry ▼]

– Technology

– Healthcare

– Finance

– Education

– Other

Example 2: Contact Details

[attrua_register custom_fields=”phone:tel:required,country:select:required”]

Renders as:

Phone Number: [___________] *

Country: [Select Country ▼] *

Example 3: Professional Profile

[attrua_register custom_fields=”job_title:text:optional,linkedin:url:optional,bio:textarea:optional”]

Renders as:

Job Title: [___________]

LinkedIn Profile: [___________]

Bio: [________________

________________] (textarea)

Validation Rules

Automatic validation:


email: Valid email format
tel: Phone number format (10-15 digits)
url: Valid URL format
number: Numeric values only

Custom validation:


// Add to functions.php or custom plugin
add_filter('attrua_pro_validate_custom_field', function($is_valid, $field_name, $field_value) {
    if ($field_name === 'company_name') {
        // Require minimum 3 characters
        if (strlen($field_value) < 3) {
            return new WP_Error('invalid_company', 'Company name too short');
        }
    }
    return $is_valid;
}, 10, 3);

Email Validation

Domain Validation

Check if email domain exists:

☑ Validate email domain exists

Blocks:

  • typos@gmial.com (should be gmail.com)
  • user@nonexistentdomain123.com
  • test@fake-domain.xyz

Allows:

  • user@gmail.com ✓
  • contact@company.com ✓
  • admin@example.org ✓

Disposable Email Detection

Block temporary/throwaway email addresses:

☑ Block disposable email addresses

Blocks services like:

  • tempmail.com
  • 10minutemail.com
  • guerrillamail.com
  • trashmail.com
  • mailinator.com

Message shown:

"Disposable email addresses are not allowed. Please use a permanent email address."

Email Whitelist/Blacklist

Whitelist (Allow only specific domains):

Allowed Email Domains:

company.com

@business.org

@partner.net

Result: Only these domains can register

Blacklist (Block specific domains):

Blocked Email Domains:

competitor.com

@spam-domain.com

@blocked-isp.net

Result: These domains cannot register

Approval Workflows

Manual Approval

Require admin approval before access:

Configuration:

☑ Enable registration approval

Default Role After Approval: [Subscriber ▼]

Pending Role: [Pending Approval (custom)]

Approval Process

Step 1: User registers

  • User completes registration form
  • Account created with "Pending Approval" status
  • User receives "Registration Under Review" email
  • Admin receives "New Registration for Approval" email

Step 2: Admin reviews

  • Admin goes to Users → Pending Approval
  • Reviews user details and custom fields
  • Decides: Approve or Reject

Step 3: User notified

Approved:

- Role changed to Subscriber (or configured role)

- "Account Approved" email sent

- User can now log in

Rejected:

- Account deleted or marked inactive

- "Registration Denied" email sent (optional)

Automatic Approval with Conditions

Approve automatically if conditions met:

Example 1: Specific email domains

Auto-approve if email ends with:

@company.com

@trusted-partner.org

All others: Manual approval required

Example 2: Custom field values


// Auto-approve company employees
add_filter('attrua_pro_auto_approve_user', function($auto_approve, $user_id) {
    $company = get_user_meta($user_id, 'company_name', true);

    if ($company === 'Our Company Name') {
        return true; // Auto-approve
    }

    return $auto_approve; // Default behavior
}, 10, 2);

Complete Registration Form Example

Full-Featured Registration Page

Shortcode:

[attrua_register

redirect="/dashboard"

show_password_strength="true"

show_links="true"

custom_fields="company:text:required,phone:tel:required,job_title:text:optional"

label_submit="Create My Account"

]

Renders as:

Email Address: [___________] *

Password: [__________ 👁] *

Strength: ●●●○○ Good

Confirm Password: [__________ 👁] *

Company Name: [___________] *

Phone Number: [___________] *

Job Title: [___________]

☐ I agree to the Terms of Service

[Create My Account]

Already have an account? Log in

Email Requirements Configuration

Settings Overview

Available options:

☑ Validate email domain exists

☑ Block disposable email addresses

☑ Require email verification

☑ Send welcome email

☑ Send admin notification

Email Verification Flow

When enabled:

Step 1: User registers

  • Complete registration form
  • Account created (inactive status)
  • Verification email sent automatically

Step 2: User verifies

Email contains:

"Click to verify: https://site.com/verify?token=abc123"

User clicks link

Account activated

Welcome email sent (if enabled)

Step 3: Access granted

User can now log in

Full site access enabled

Best Practices

Start Simple, Add Complexity

Begin with basic registration, add custom fields only as needed. Too many fields reduce conversions.

Use Email-Only for Professional Sites

Email-only registration is cleaner and more professional for business applications.

Always Validate Emails

Enable domain validation and disposable email blocking to maintain data quality.

Test Registration Flow

Complete test registrations regularly to ensure smooth user experience.

Monitor Pending Approvals

Check pending registrations daily. Long delays frustrate users.

Troubleshooting

Registration Form Not Displaying

Solutions:

    • Verify shortcode spelling: [attrua_register] (no typos)
    • Check page is using proper template (not login template)
    • Clear WordPress and browser cache
    • Verify plugin is activated
    • Check for JavaScript errors in browser console

Custom Fields Not Saving

Solutions:

    • Verify field syntax: name:type:required
    • Check for special characters in field names (use underscores)
    • Verify database user_meta permissions
    • Check PHP error log for database errors
    • Ensure no conflicting plugins modifying registration

Emails Not Sending

Solutions:

    • Test with Email Log plugin to verify emails queued
    • Configure SMTP (Gmail, SendGrid, etc.)
    • Check email settings in User Settings → Emails
    • Verify "From" email not marked as spam
    • Check hosting email limits not exceeded

Auto-Generated Usernames Conflicting

Solutions:

    • Enable "Add Random Numbers" option
    • Increase random number length to 6-8 digits
    • Use longer custom prefix to reduce collisions
    • Switch to random string generation method