User Registration Management (Pro)
Advanced user registration with custom fields, approval workflows, and flexible registration methods.
- Intermediate
- 40 min read
- Applies to 1.2.1 Pro
- Updated December 2025
Written for 1.2.1 Pro. It is being checked against 2.0, so a screen or a setting may sit somewhere else. Tell support if something does not match.
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:
1. Extract name before @ symbol
2. Replace dots with underscores
3. Remove special characters
4. Add number if username exists
Option 2: Random String
Email: user@example.com
Generated Username: user_x9k2m7p4
Process:
1. Start with "user_"
2. Add 8 random alphanumeric characters
3. 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
1. Go to User Settings → Registration
2. Select "Email Only" registration
3. 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_registration', 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
1. User completes registration form
2. Account created with "Pending Approval" status
3. User receives "Registration Under Review" email
4. Admin receives "New Registration for Approval" email
Step 2: Admin reviews
1. Admin goes to Users → Pending Approval
2. Reviews user details and custom fields
3. 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
There is no registration moderation, and no attrua_pro_auto_approve_user
filter. An account created through the registration form is active
immediately — there is no pending state to approve, so there is nothing for an
auto-approval rule to short-circuit.
To hold new accounts back, act after the fact: attrua_user_registered fires
with the new user ID, and from there you can demote the role, set a flag your
theme checks, or hand the account to a membership plugin that does have a
pending state.
add_action('attrua_user_registered', function ($user_id) {
$company = get_user_meta($user_id, 'company_name', true);
if ($company !== 'Our Company Name') {
// not one of ours: park the account until a human looks at it
(new WP_User($user_id))->set_role('pending_review');
}
});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
1. Complete registration form
2. Account created (inactive status)
3. 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
- 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
- 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
- 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
- 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
Related articles
Something missing or out of date? Tell support.