DoRegister - Registration System
A custom WordPress plugin that provides an advanced multi-step user registration system, complete with login, frontend profile view, and enhanced jQuery-based UX.
Install
No release zip yet. The repository archive installs, but the folder name will carry the branch suffix and updates will not flow:
wp plugin install https://github.com/dinesh-n98/doregister/archive/refs/heads/main.zipDoRegister - Advanced User Registration System
A comprehensive WordPress plugin that provides an advanced multi-step user registration system with login, frontend profile view, unified account page, and enhanced jQuery-based UX.
Features
🔐 Multi-Step Registration Form
- 5-Step Process: Basic Information, Contact Details, Personal Details, Profile Photo Upload, Review & Confirm
- AJAX-Powered: Seamless frontend experience without page reloads
- Progress Bar: Visual indicator of registration progress
- Step Navigation: Next/Back buttons with validation blocking
- Auto-Save: Form data automatically saved to browser localStorage
- Real-time Validation: Client-side validation with inline error messages
📸 Profile Photo Upload
- AJAX Upload: Photos uploaded via AJAX to WordPress Media Library
- Image Preview: Instant preview before submission
- File Validation: Size limits (2MB) and type restrictions (JPG, PNG, GIF)
- Media Library Integration: Photos stored as WordPress attachments
🔑 Authentication System
- Custom Login Form: Frontend login interface (no wp-login.php dependency)
- AJAX Login: Secure login without page redirects
- Error Handling: Clear error messages and success redirects
- Session Management: Proper WordPress user sessions
👤 User Profile Management
- Frontend Profile View: Users can view their complete profile
- Profile Photo Display: Uploaded photos shown in profile
- User Meta Display: All custom fields (phone, country, interests, etc.)
- Logout Functionality: Secure logout with redirect
- Subscriber-only Access: Newly registered users are created with the subscriber role and can only access and update their own profile (email, password, profile photo, and meta fields).
📄 Account Page System
- Unified Account Page: Single page with login/register/profile functionality
- Tabbed Interface: Clean tabs for login and registration options
- Dynamic Content: Content changes based on user login status
- Manual Menu Control: Full control over navigation menu placement
- SEO-Friendly: Dedicated page with proper URL structure
🛠️ Admin Enhancements
- Custom Admin Page: Dedicated user management interface
- Extra Meta Fields: Display and edit custom user data
- Profile Photo Management: View and manage user photos
- User Table: Overview of all DoRegister users
🎨 User Experience
- Password Strength Meter: Real-time password strength indication
- Responsive Design: Mobile-friendly interface
- Smooth Transitions: jQuery-powered step animations
- Form Validation: Comprehensive client and server-side validation
Installation
-
Download the plugin
- Download the
DoRegisterfolder to your WordPress plugins directory
- Download the
-
Activate the plugin
- Go to WordPress Admin > Plugins
- Find "DoRegister - Registration System"
- Click "Activate"
-
Configure shortcodes
- Add shortcodes to your pages/posts as needed
Usage
Shortcodes
Add these shortcodes to any page or post to display the respective forms:
Account Page (Recommended)
[doregister_account]
Displays a unified account page with:
- For logged-out users: Tabbed interface with Login and Register options
- For logged-in users: Profile information and logout button
- Manual menu control: Create a page with this shortcode and link it to your navigation menu
Registration Form
[doregister_form]
Displays the complete 5-step registration form.
Login Form
[doregister_login]
Displays the custom login form.
User Profile
[doregister_profile]
Displays the user profile (requires user to be logged in). The profile page now includes a frontend edit form and delete account flow so subscribers can update email, password, profile photo and other meta fields without using the WP admin.
Setting Up the Account Page (Recommended Method)
-
Create a WordPress Page
- Go to WordPress Admin > Pages > Add New
- Title: "Account" (or "My Account", "Login", etc.)
- Add the shortcode:
[doregister_account] - Publish the page
-
Add to Navigation Menu
- Go to Appearance > Menus
- Add your new Account page to the menu
- Set the menu item text to "Account" or "My Account"
- Assign the menu to your theme's primary navigation location
- Save the menu
-
Result: Users can now click "Account" in your navigation to access login/register/profile functionality on a dedicated page.
Admin Interface
Access the admin interface:
- Go to Users > DoRegister Users
- View and manage all registered users
- Edit user meta fields
- View profile photos
Requirements
- WordPress: 5.0 or higher
- PHP: 7.2 or higher
- jQuery: Included with WordPress
- File Uploads: Enabled on server
- Media Library: WordPress Media Library must be functional
File Structure
DoRegister/
├── do-register.php # Main plugin file
├── uninstall.php # Uninstall script
├── includes/
│ ├── class-plugin.php # Bootstrap class
│ ├── class-assets.php # Asset management
│ ├── class-ajax.php # AJAX handlers
│ ├── class-registration.php # Registration logic
│ ├── class-login.php # Login logic
│ ├── class-profile.php # Profile logic
│ └── admin-user-management.php # Admin interface
├── templates/
│ ├── registration-form.php # Registration form template
│ ├── login-form.php # Login form template
│ └── profile-view.php # Profile view template
├── assets/
│ ├── css/
│ │ ├── style.css # Plugin styles
│ │ ├── login.css # Login form styles
│ │ └── account.css # Account page styles
│ └── js/
│ ├── registration.js # Registration JavaScript
│ ├── login.js # Login JavaScript
│ └── account.js # Account page JavaScript
└── README.md # This file
Security Features
- Nonce Verification: All AJAX requests protected with WordPress nonces
- Input Sanitization: All user inputs sanitized and validated
- File Upload Security: Strict file type and size validation
- CSRF Protection: Form submissions protected against cross-site request forgery
- Admin protection: Administrators and the stored installer account cannot be deleted via the plugin front-end.
- WordPress Standards: Follows all WordPress security best practices
Customization
Styling
Modify assets/css/style.css to customize the appearance of forms and interface elements.
JavaScript
Extend functionality by modifying:
assets/js/registration.js- Registration form behaviorassets/js/login.js- Login form behavior
Templates
Customize form HTML by editing templates in the templates/ directory.
Hooks and Filters
Actions
doregister_user_registered- Fires after successful user registrationdoregister_user_logged_in- Fires after successful logindoregister_photo_uploaded- Fires after photo uploaddoregister_user_updated- Fires after a successful frontend profile update (receives $user_id)doregister_user_deleted- Fires after account deletion via frontend (receives $user_id)
Filters
doregister_registration_fields- Modify registration form fieldsdoregister_user_meta_fields- Modify saved user meta fieldsdoregister_upload_limits- Modify file upload limits
Troubleshooting
Common Issues
Form not loading
- Ensure jQuery is enabled in WordPress
- Check browser console for JavaScript errors
- Verify shortcodes are properly added
Photo upload failing
- Check file permissions on wp-content/uploads
- Verify PHP upload limits in php.ini
- Ensure Media Library is functional
AJAX requests failing
- Check WordPress admin-ajax.php accessibility
- Verify nonces are properly generated
- Check server error logs
Debug Mode
Enable WordPress debug mode to see detailed error messages:
define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
Changelog
Version 1.1.0
- Added unified account page shortcode
[doregister_account] - Implemented manual menu control system
- Replaced popup modal with dedicated page interface
- Added tabbed login/register interface
- Enhanced responsive design for account pages
- Improved user experience with page-based navigation
Version 1.0.0
- Initial release
- Multi-step registration form
- AJAX photo upload
- Custom login interface
- Frontend profile view
- Admin user management
- Password strength meter
- Responsive design
License
This plugin is licensed under the GPL v2 or later.
DoRegister - Advanced User Registration System
Copyright (C) 2025, Dinesh Narada
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License along
with this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
Support
For support, bug reports, or feature requests:
- Create an issue on GitHub
- Check the WordPress.org support forums
- Review the documentation in
LEARN.MD
Contributing
Contributions are welcome! Please:
- Fork the repository
- Create a feature branch
- Make your changes
- Test thoroughly
- Submit a pull request
Credits
Developed by Dinesh Narada
- Plugin architecture and core functionality
- AJAX implementation
- Security hardening
- WordPress integration# DoRegister