Introduction
New User Approve is a Wordpress plugin that allows a blog administrator to approve a user before they are able to access and login to the blog. This plugin is perfect if you want more control over who you want to access your blog.
I have a private blog that I only allow registered users to access. Although the default registration process works great in most cases, I needed more control over who was registering for the private blog. Now I can either approve or deny each user once they register.
If you are interested in even more customization of the registration process, I would recommend the Register Plus plugin.
This does not lock out unregistered users. I use another plugin, Members Only by Andrew Hamilton, to handle that.
How it Works
In a normal Wordpress blog, once a new user registers, the user is created in the database. Then an email is sent to the new user with their login credentials. Very simple. As it should be.
The New User Approve plugin changes up the registration process. When a user registers for the blog, the user gets created and then an email gets sent to the administrators of the site. An administrator then is expected to either approve or deny the registration request. An email is then sent to the user indicating whether they were approved or denied. If the user was approved, the email will include the login credentials. Until a user is approved, the user will not be able to login to the site.
Administration
There is a minimal amount of administration involved when using the New User Approve plugin. In the administration panel, you are able to view users waiting approval, view users that have been denied, and take a look at users that have been approved. All in a nice tabbed interface! At any time, a denied user or an approved user can have their status reversed.
The admin panel to approve or deny users is located under Users -> Approve New Users.
Changelog
1.2 fixes (12/20/2009)
- add localization support
- add a changelog to readme.txt
- remove plugin constants that have been defined since 2.6
- correct the use of db prepare statements/use prepare on all SQL statements
- add wp_enqueue_style for the admin style sheet
1.1.3 fixes (06/17/2009)
- replace calls to esc_url() with clean_url() to make plugin compatible with versions less than 2.8
1.1.2 fixes (06/10/2009)
- fix the admin UI tab interface for wp2.8
- add a link to the users profile in the admin interface
- fix bug when using email address to retrieve lost password
- show blog title correctly on login screen
1.1.1 fixes (05/22/2009)
- fix approve/deny links
- fix formatting issue with email to admin to approve user
1.1 fixes (05/17/2009)
- correctly display error message if registration is empty
- clean up code
- style updates
- if a user is created through the admin interface, set the status as approved instead of pending
- add avatars to user management admin page
- improvements to SQL
- verify the user does not already exist before the process is started
- add nonces to approve and deny actions
- temporary fix for pagination bug if more the 50 users are present in the WP database
Screenshots
Upcoming Changes
- An admin interface to manage options
- Add option to customize approval email
- Add option to customize denial email
- Add option to customize admin notification email that gets sent when a new user registers
Download and Install
- Download this plugin.
- Upload the plugin to the wp-content/plugins directory on the server where your site is located.
- Activate the plugin through the ‘Plugins’ menu in WordPress
- No configuration necessary.
Please leave a comment if have any suggestions or complaints. Feedback is always welcome. Donate if you find this plugin useful to support future development.
The plugin is also on the Wordpress Plugin Directory at the New User Approve site.


hi. Thanks for plugin
perfect.
Regards
I have been looking for a simple way to stop spam users registering and this plugin fits the bill perfectly.
Keep up the good work Josh!
This plugin is exactly what I have been looking for, but it doesn’t seem to work for me.
I have activated the plugin, but when I log out of my account I can still see the blog. I want people to get some sort of message asking them to log in or register, does this plugin offer that or do I need to set that option elsewhere?
Thanks so much for your help, and I like your BYU t-shirt!
@Justin you’ll need the Members Only plugin to handle keeping unregistered users out of your blog.
Very nice plugiin. Clean and smooth. Thx
I’m not getting my admin emails for some reason. Might be on my end anyway, but do you have any suggestions for things I could look at from the plugin side?
I will take a look at this over the weekend and update the plugin if necessary.
Many thanks! This is super helpful for my family blog.
MAtt
Hi Josh, thanks for the plugin. It is very useful. I would like to suggest a minor change in the plugin behavior.
If the user is created through the admin interface I think it is better to set his status as ‘approved’ instead of setting it as ‘pending’.
This because if a admin go to the “Approve new users” page he can see active users as ‘peding’ and then if he approves it the system will change the user’s password.
To achieve this I think that you only have to change the line 32.
What do you think?
Thanks, Rodrigo.
Hi again Josh, we been playing around with new user approve and I think we have found a bug.
In a fresh Wordpress 2.7.1 install with New User Approve enable if the user submit an empty registration form it doesn’t get the message saying that the username and email fields are mandatory. Instead it receives the message saying “Registration successful.”.
I’ve send to you by email the patch we made to fix this.
Regards, Rodrigo.
Thanks for the patch Rodrigo. One reason I wanted to release this plugin was because of people like you. This is awesome!
Has a security hole?
Anyone can ask registration with an existing login.
‘New User Aprove’ don’t check this. On aproval get ID of the first row in users, reset his password an email a new one to intruder.
Please Josh, get my modified version at http://www.dsland.org/new-user-approve-modified.tar.gz, checkit and release a new version.
-check existing login
-update password query select by ID
Thanks Javier. I added your patch to 1.1
Hi Josh. Thank you for creating such plugin. I have a question though. When I got to approve a person, I get a page does not exist (404 not the one for Wordpress). So I am not able to approve the person or deny them either. Any ideas?
Thanks,
Great and useful plugin. Thanks for fixing the approve/deny links.
One comment/suggestion:
It would be nice if the “Approve New Users” listing contained links to the user profiles (Username column). It is a trivial fix/patch and I do it myself in the plugin editor. The links to profile are needed for us because we have few extra fields in the registration form that need to be checked before approval.
One more thing – it would be really nice if all registration fields (including ((cimy or whatever)) extra fields) were sent to admin with the new user notification email.
Keep it up.
Hi, excelent post.
I found a bug. When you not remember your password, the wordpress can`t send password reset. I have wp2.7.1 and lost your password function is not workin with your plugin..
Thanks for finding this bug Max. I was able to recreate this bug when using your email address to retrieve your password. I have fixed it to work with either your email address or username in 1.1.2.
Hi Josh–
I love the plugin! I am having one problem, however.
When I register a new user, after I submit I come to a blank screen that says “Pending Approval”
I’d like to change that message a bit and at the least have my template stay on the screen.
Is there any way to apply this message to the body of my template?
Thanks
Lisa
Josh-
Trying to use this plugin with “Theme My Login,”
http://www.jfarthing.com/wordpress-plugins/theme-my-login-plugin
and am having an issue; your plugin is making a call to login_header, and it’s throwing an error – any graceful way to get a message to print to the screen?
Fatal error: Call to undefined function login_header() in /home/PATH-TO-WP/wp-content/plugins/new-user-approve/new-user-approve.php on line 410
Any help would be appreciated.
Cheers
I was looking for a plugin with exactly this function and it looks like it does exactly what I need. Thanks!
Feature request: currently nearly all of the strings of text used in the user messages, emails and admin interface are hard-coded into the plugin. I am planning on using this on non-English sites, so I will be translating the strings inside the plugin. However, this makes it pretty painful to upgrade the plugin in the future. My request is to make it easier to include translations, and persist them in between plugin upgrades.
[...] just checked in some code changes for the New User Approve plugin. I tested it with WordPress 2.9 that was recently [...]
Hmm, OK here you go then:
line 275:
$edit = ‘<strong><a href=”$edit_link”>’ . $user->user_login . ‘</a></strong><br />’;
Shouldn’t it be:
$edit = ‘<strong><a href=”‘.$edit_link.’”>’ . $user->user_login . ‘</a></strong><br />’;
?
I’m having the same problem as Mike in September. I’d like to use it with the Theme My Login plugin but it’s giving a Call to undefined function login_header() error. It’s a custom theme, if there is anything I’m missing I need to add to my theme or edit let me know, I’d love to be able to use this plugin. Thanks.
Good news. I have added a fix to make the New User Plugin compatible with the Theme My Login plugin. The plugin author unfortunately removes the login_header function so I just check to see if the function exists before calling it. Check for it within the next few days.
hello
this is a nice plugin but i am having problems with the localization. Actually, it doesnt work at all.
I have made the correct files for the greek language
(pw_new_user_approve-el_EL.mo and pw_new_user_approve-el_EL.po) and placed them under the localization folder.
Nothing is happening, front end messages and also admin messages are still in english. The greek language is correctly declared in wp-config.php as:
define (‘WPLANG’, ‘el’);
I think there is something wrong at line 37:
var $localizationDomain = “pw_new_user_approve”;
and line 68:
load_plugin_textdomain($this->localizationDomain, dirname(__FILE__) . ‘/localization’);
any help?
thank you in advance!
First of all i want to thank you for your plug-in.
Now I need some help as I am very much new in Word-press. I have used your plug-in but after getting register, user are not getting the confirmation mail, I am using windows server,can you help me to solve this problem!
Thanks
Debajyoti
I successfully created polish traslation. I will send it to Josh Harrison. There was some problems with it.
First, the translation file must be renamed from “new_user_approve-….” to “pw_new_user_approve-….”
Second, I changed line 68 to
load_plugin_textdomain($this->localizationDomain, false, dirname(plugin_basename( __FILE__ )) . ‘/localization’);
Is there a way to customize the final email the user gets once they are approved?
I’ve opened up the source, but any change I make doesn’t make it to the final email. I’ve been messing with lines 376-371 in the new-user-approve.php file.
Am I missing something or messing with the wrong code altogether?
hello again
the changes suggested by Piotr Kubala solved my problems.
@Lefteris Thanks for pointing out the bug with the localization. I have fixed the code and released it under version 1.2.2. I would love to include your greek translation with the plugin. Let me know if you are interested.
I will be adding a way to customize the plugin using both options and filters in a future version.
Does this:
Add option to customize admin notification email that gets sent when a new user registers
mean that you will be able to customize who gets the admin mail requesting a new user registration? Because I used this sweet plugin to set up a site for a friend but because I registered as the first admin it sends all the emails to me instead of her…