Title: Allow Multiple Accounts
Author: Scott Reilly
Published: <strong>јуни 23, 2009</strong>
Last modified: јули 15, 2015

---

Search plugins

![](https://ps.w.org/allow-multiple-accounts/assets/banner-772x250.png?rev=1121927)

This plugin **hasn’t been tested with the latest 3 major releases of WordPress**.
It may no longer be maintained or supported and may have compatibility issues when
used with more recent versions of WordPress.

![](https://ps.w.org/allow-multiple-accounts/assets/icon-128x128.png?rev=1121927)

# Allow Multiple Accounts

 By [Scott Reilly](https://profiles.wordpress.org/coffee2code/)

[Download](https://downloads.wordpress.org/plugin/allow-multiple-accounts.3.0.4.zip)

 * [Details](https://mk.wordpress.org/plugins/allow-multiple-accounts/#description)
 * [Reviews](https://mk.wordpress.org/plugins/allow-multiple-accounts/#reviews)
 *  [Installation](https://mk.wordpress.org/plugins/allow-multiple-accounts/#installation)
 * [Development](https://mk.wordpress.org/plugins/allow-multiple-accounts/#developers)

 [Support](https://wordpress.org/support/plugin/allow-multiple-accounts/)

## Description

Allow multiple user accounts to be created, registered, and updated having the same
email address.

By default, WordPress only allows a specific email address to be used for a single
user account. This plugin removes that restriction.

The plugin’s settings page (accessed via Users -> Multiple Accounts or via the Settings
link next to the plugin on the Manage Plugins page) provides the ability to allow
only certain email addresses the ability to have multiple accounts (such as if you
only want admins to have that ability; by default all email addresses can be used
more than once). You may also specify a limit to the number of accounts an email
address can have (by default there is no limit).

The settings page also provides a table listing all user accounts that share email
addresses (see screenshot).

Compatible with Multisite and BuddyPress as well.

Links: [Plugin Homepage](http://coffee2code.com/wp-plugins/allow-multiple-accounts/)
| [Plugin Directory Page](https://wordpress.org/plugins/allow-multiple-accounts/)
| [Author Homepage](http://coffee2code.com)

### Template Tags

The plugin provides three optional template tags for use in your theme templates.

#### Functions

 * `<?php c2c_count_multiple_accounts( $email ); ?>`

Returns a count of the number of users associated with the given email.

 * `<?php c2c_get_users_by_email( $email ); ?>`

Returns the users associated with the given email.

 * `<?php c2c_has_multiple_accounts( $email ); ?>`

Returns a boolean indicating if the given email is associated with more than one
user account.

#### Arguments

 * `$email` (string)
    An email address.

### Filters

The plugin exposes three filters for hooking. Typically, customizations utilizing
these hooks would be put into your active theme’s functions.php file, or used by
another plugin.

#### c2c_count_multiple_accounts (filter)

The ‘c2c_count_multiple_accounts’ hook allows you to use an alternative approach
to safely invoke `c2c_count_multiple_accounts()` in such a way that if the plugin
were deactivated or deleted, then your calls to the function won’t cause errors 
in your site.

Arguments:

 * same as for `c2c_count_multiple_accounts()`

Example:

Instead of:

    ```
    <?php echo c2c_count_multiple_accounts( $email ); ?>
    ```

Do:

    ```
    <?php echo apply_filters( 'c2c_count_multiple_accounts', $email ); ?>
    ```

#### c2c_get_users_by_email (filter)

The ‘c2c_get_users_by_email’ hook allows you to use an alternative approach to safely
invoke `c2c_get_users_by_email()` in such a way that if the plugin were deactivated
or deleted, then your calls to the function won’t cause errors in your site.

Arguments:

 * same as for `c2c_get_users_by_email()`

Example:

Instead of:

    ```
    <?php echo c2c_get_users_by_email( $email ); ?>
    ```

Do:

    ```
    <?php echo apply_filters( 'c2c_get_users_by_email', $email ); ?>
    ```

#### c2c_has_multiple_accounts (filter)

The ‘c2c_has_multiple_accounts’ hook allows you to use an alternative approach to
safely invoke `c2c_has_multiple_accounts()` in such a way that if the plugin were
deactivated or deleted, then your calls to the function won’t cause errors in your
site.

Arguments:

 * same as for `c2c_has_multiple_accounts()`

Example:

Instead of:

    ```
    <?php echo c2c_has_multiple_accounts( $email ); ?>
    ```

Do:

    ```
    <?php echo apply_filters( 'c2c_has_multiple_accounts', $email ); ?>
    ```

## Screenshots

 * [[
 * A screenshot of the plugin’s admin settings page.
 * [[
 * A screenshot of a registration attempt failing due to exceeding the limit on 
   the number of allowed multiple accounts.
 * [[
 * A screenshot of the error message shown on a user’s profile whose email address
   change failed due to exceeding the limit on the number of allowed multiple accounts.

## Installation

 1. Whether installing or updating, whether this plugin or any other, it is always 
    advisable to back-up your data before starting
 2. Unzip `allow-multiple-accounts.zip` inside the `/wp-content/plugins/` directory
    for your site (or install via the built-in WordPress plugin installer)
 3. Activate the plugin through the ‘Plugins’ admin menu in WordPress
 4. Go to the Users -> Multiple Accounts admin settings page (which you can also get
    to via the Settings link next to the plugin on the Manage Plugins page) and configure
    settings. On a Multisite install, go to My Sites -> Network Admin -> Users -> Multiple
    Accounts.

## FAQ

  Installation Instructions

 1. Whether installing or updating, whether this plugin or any other, it is always 
    advisable to back-up your data before starting
 2. Unzip `allow-multiple-accounts.zip` inside the `/wp-content/plugins/` directory
    for your site (or install via the built-in WordPress plugin installer)
 3. Activate the plugin through the ‘Plugins’ admin menu in WordPress
 4. Go to the Users -> Multiple Accounts admin settings page (which you can also get
    to via the Settings link next to the plugin on the Manage Plugins page) and configure
    settings. On a Multisite install, go to My Sites -> Network Admin -> Users -> Multiple
    Accounts.

  Why would I want to allow multiple accounts to be associated with one email address?

Maybe your site is one that doesn’t mind if users can sign up for multiple accounts
from the same email address, perhaps for different identities. More likely, you 
as an admin, plugin developer, and/or theme developer would like to be able to create
multiple accounts on a site to test various permissions or you just want to test
the blog having numerous users and don’t want to have to assign unique email addresses
for each account.

  Can I limit who can create multiple accounts for an email address?

Yes. You can specify a limit on how many accounts can be created per email address.
You can also explicitly list the email addresses which are allowed to create multiple
accounts (useful for just allowing admins to have multiple accounts).

  How does the plugin affect the “Lost your password?” feature?

The clearest method for resetting a forgotten password is to supply the username
on the “Lost your password” form when prompted.

If an email address is instead supplied on the form, WordPress will send an email
to that address with reset information for the first account found associated with
that address. If multiple accounts are associated with that email address, then 
the email will include a listing of all associated usernames. In order to reset 
the password for a specific account, go back to the forgotten password form and 
supply the desired username, or if the email that was sent happens to be for the
account that needs the password reset, follow the instructions and link in the email.
Bear in mind that the password reset email can be safely disregarded if it relates
to an account that shouldn’t be reset.

  Does this plugin allow existing user accounts to update to share an email address?

Yes. Account email address usage is handled for existing accounts as well when they
attempt to change their email address. If a user account is updated to try to use
an email address that has exceeded its allowable use limit, the change will simply
be denied (with an error message; see screenshot 3) and their email address will
remain unchanged.

  What if I allowed email addresses to create up to 5 accounts and some people did
so. Then I lowered the limit to 2. What happens now that some email accounts exceed
the current limit?

Nothing happens. The plugin does not enforce anything with existing accounts. Those
email addresses will not be able to create new accounts because they exceed the 
current limits. However, if one of those accounts changes their email address to
something else and then tries to change back, then won’t be able to do so because
the limit of 2 will prevent them from switching to that particular email address(
since there would still be 4 other accounts using the email address in this hypothetical
scenario).

  Is this Multisite compatible?

Yes.

  Is this BuddyPress compatible?

Yes.

  In Multisite, why do I get this error message when trying to register for another
account with an already used email address: “That email address has already been
used. Please check your inbox for an activation email. It will become available 
in a couple of days if you do nothing.”

If you’re seeing that error then it means the email address used for the new registration
matches one used by an account in the signups table. Basically, an account has been
registered with that email address but has not been activated yet. Only one account
can be in this registered-but-not-activated state per email address.

Before that email address can be used for another account, you have to activate 
that pending account, delete the pending account from the signups table, or wait
a couple of days until the pending account expires.

## Reviews

![](https://secure.gravatar.com/avatar/db88e6bcffbd9ae723a171a2a560d32dab2154ff0a487eccbe97ae85d6eedd0b?
s=60&d=retro&r=g)

### 󠀁[Still works with WordPress 5.9](https://wordpress.org/support/topic/still-works-with-wordpress-5-9/)󠁿

 [drtallsimon](https://profiles.wordpress.org/drtallsimon/) јануари 29, 2022

Even with UltimateMember, just change user registration form to not require a unique
email address

![](https://secure.gravatar.com/avatar/3700150f26f521f1e1624f7623edfd5c55fc8e236e625dc9cb979728096ee581?
s=60&d=retro&r=g)

### 󠀁[Still works like a charm in 2020](https://wordpress.org/support/topic/still-works-like-a-charm-in-2020/)󠁿

 [rAthus](https://profiles.wordpress.org/rathus/) септември 21, 2020

Despite the lack of update for 5+ years, we just installed it on a Wordpress 5.4.2
and it works perfectly. Author should update the compatibility to remove the scary
message on top of the plugin’s page.

![](https://secure.gravatar.com/avatar/d154bc63b011ee075f94b9e29720a860d8af41c3d584117c35f7a06119fa03ec?
s=60&d=retro&r=g)

### 󠀁[cool plugin](https://wordpress.org/support/topic/cool-plugin-372/)󠁿

 [ddmmdit](https://profiles.wordpress.org/ddmmdit/) јуни 14, 2019

best of the best, wonder why the author dont update it

![](https://secure.gravatar.com/avatar/c40350b2d2fb6a46b4590d68b49e1168f994995552cc999c3a847afd365ae002?
s=60&d=retro&r=g)

### 󠀁[Thank you](https://wordpress.org/support/topic/thank-you-1978/)󠁿

 [solysergio](https://profiles.wordpress.org/solysergio/) април 7, 2019

Scott, thanks for your job

![](https://secure.gravatar.com/avatar/4c98c8332bd0e19fd3f03bc8da5335c170fba217f6f945fa64e00938f862d2a5?
s=60&d=retro&r=g)

### 󠀁[Great plugin](https://wordpress.org/support/topic/great-plugin-16425/)󠁿

 [Jens](https://profiles.wordpress.org/jroggemann/) јануари 8, 2018

Thanks for sharing, works great with WordPress 3.9.1. After deactivating normal 
user-management seems being unaffected, unless you try to change an existing “multiple-
email-user” or ad a new user of this type. (but after re-activating this tasks succeed
too!) I find it very useful for maintaning historic users, who won’t will have own
editor-access at the instance but should remaining for historical intentions; giving
them an unremindable password in combination with an admin-dummy-email (nobody@your-
website.org) and then re-declaring them as only registered users will make these
Userprofiles acceptable on a productive WordPress website, I think?! Regards, Jens
aus Freistatt, Germany

![](https://secure.gravatar.com/avatar/f585875d3c07f3695bfe0228ec0d44e8782d5880a319a421b8080567c239620d?
s=60&d=retro&r=g)

### 󠀁[Great plugin!](https://wordpress.org/support/topic/great-plugin-16073/)󠁿

 [Shannon Little](https://profiles.wordpress.org/enchiridion/) декември 4, 2017

This is a great plugin! When using WP 4.8.3 or later, a small patch needs to be 
applied (see support section for patch).

 [ Read all 22 reviews ](https://wordpress.org/support/plugin/allow-multiple-accounts/reviews/)

## Contributors & Developers

“Allow Multiple Accounts” is open source software. The following people have contributed
to this plugin.

Contributors

 *   [ Scott Reilly ](https://profiles.wordpress.org/coffee2code/)

[Translate “Allow Multiple Accounts” into your language.](https://translate.wordpress.org/projects/wp-plugins/allow-multiple-accounts)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/allow-multiple-accounts/),
check out the [SVN repository](https://plugins.svn.wordpress.org/allow-multiple-accounts/),
or subscribe to the [development log](https://plugins.trac.wordpress.org/log/allow-multiple-accounts/)
by [RSS](https://plugins.trac.wordpress.org/log/allow-multiple-accounts/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 3.0.4 (2015-07-14)

 * Change: Don’t attempt to remap (even if only briefly) the email address for user
   updates when the email address hasn’t been changed

#### 3.0.3 (2015-07-09)

 * Bugfix: Hook ‘profile_update’ and ‘user_register’ at higher priority to avoid
   conflicting with other plugins (e.g. MailPoet, MailPress)
 * Update: Hook ‘pre_user_email’ and ‘pre_user_login’ at lower priority to avoid
   potentially conflicting with other plugins
 * Update: Remap user email more precisely using user ID instead of email (though
   no problems noted with the old approach)

#### 3.0.2 (2015-04-16)

 * Bugfix: compatibility fix for versions of WP older than 4.1; `$error->remove()`
   was introduced in 4.1
 * Update: Note compatibility through WP 4.2+

#### 3.0.1 (2015-04-10)

 * Bugfix: add omitted code to `count_multiple_accounts()` to account for $user_id
   arg potentially being an object

#### 3.0 (2015-03-26)

 * Reimplement necessary workaround to WP’s shortcoming in facilitating repeated
   use of email addresses
 * Fix outdated error handling
 * Fix `has_exceeded_limit()` to account for ‘account_limit’ not being set and ‘
   allow_for_everyone’ being false
 * Fix `has_exceeded_limit()` to account for ‘account_limit’ not being set and ‘
   allow_for_everyone’ being true
 * Omit listing email addresses associated with only 1 account on the settings page“
   Email Addresses with Multiple User Accounts” listing
 * Add new hack functions: `hack_pre_user_login()`, `hack_pre_user_login()`, `hack_restore_remapped_email_address()`
 * Remove long deprecated functions: `count_multiple_accounts()`, `get_users_by_email()`,`
   has_multiple_accounts()`
 * Remove no longer needed hack functions:
    - `get_user_by_email()`
    - `get_user_by()`
    - `display_activation_notice()`
    - `hack_check_passwords()`
    - `hack_pre_user_display_name()`
 * Remove no longer needed hack class variables: during_user_creation, controls_get_user_by
 * Add new hack class variables: hack_user, hack_remapped_emails
 * Indent user listings in table on settings page to indicate they are being listed
   according to email address
 * Update plugin framework to 039
 * Change default input type for ‘account_limit’ setting from ‘text’ to ‘int’
 * Better singleton implementation:
    - Add `get_instance()` static method for returning/creating singleton instance
    - Make static variable ‘instance’ private
    - Make constructor protected
    - Make class final
    - Additional related changes in plugin framework (protected constructor, erroring`
      __clone()` and `__wakeup()`)
 * Add unit tests
 * Explicitly declare `activation()` and `uninstall()` static
 * Add checks to prevent execution of code if file is directly accessed
 * Change use of “e-mail” to “email”
 * Re-license as GPLv2 or later (from X11)
 * Reformat plugin header
 * Add ‘License’ and ‘License URI’ header tags to readme.txt and plugin file
 * Use explicit path for `require_once()`
 * Discontinue use of PHP4-style constructor
 * Discontinue use of explicit pass-by-reference for objects
 * Remove ending PHP close tag
 * Documentation improvements (inline and readme)
 * Minor code reformatting (spacing, bracing)
 * Change documentation links to wp.org to be https
 * Note compatibility through WP 4.1+
 * Drop compatibility with version of WP older than 3.6
 * Update copyright date (2015)
 * Regenerate .pot
 * Change donate link
 * Add assets directory to plugin repository checkout
 * Update screenshots
 * Add third screenshot
 * Move screenshots into repo’s assets directory
 * Add banner
 * Add icon

#### 2.6.2

 * Fix for WP 3.2.x to prevent warning notice unnecessarily appearing in admin

#### 2.6.1

 * Fix for WP 3.2.x (need to override get_user_by_email() again instead of get_user_by()–
   but just for WP < 3.3)

#### 2.6

 * Add/fix multisite support
 * Remove get_user_by_email() override function
 * Override get_user_by() to circumvent check for email existence
 * Show admin notice if unable to override get_user_by()
 * Update plugin framework to 033
 * Remove support for ‘c2c_allow_multiple_accounts’ global
 * Note compatibility through WP 3.3+
 * Change parent constructor invocation
 * Create ‘lang’ subdirectory and move .pot file into it
 * Regenerate .pot
 * Add more FAQs
 * Minor phpDoc reformatting
 * Add ‘Domain Path’ directive to top of main plugin file
 * Add link to plugin directory page to readme.txt
 * Tweak installation instructions in readme.txt
 * Update screenshots for WP 3.3
 * Update copyright date (2012)

#### 2.5

 * Fix user listing error by adapting older user_row() into class function
 * Add support for BuddyPress
 * Add bp_members_validate_user_signup()
 * Fix has_exceeded_limit() to account for the account_limit applying to certain
   emails and not everyone
 * Fix to properly register activation and uninstall hooks
 * Add filters ‘c2c_count_multiple_accounts’, ‘c2c_get_users_by_email’, and ‘c2c_has_multiple_accounts’
   to respond to the function of the same name so that users can use the apply_filters()
   notation for invoking template tags
 * Use get_users() rather than direct query
 * Remove Posts (which provided count of posts) from multi-account user listing 
   table
 * Update plugin framework to 023
 * Save a static version of itself in class variable $instance
 * Deprecate use of global variable $c2c_allow_multiple_accounts to store instance
 * In global space functions: use new class instance variable to access instance
   instead of using global
 * Rename class from ‘AllowMultipleAccounts’ to ‘c2c_AllowMultipleAccounts’
 * Add __construct(), activation(), uninstall()
 * Note compatibility through WP 3.2+
 * Drop support for versions of WP older than 3.1
 * Add more FAQ questions
 * Call _deprecated_function() on deprecated functions to generate proper notices/
   warnings
 * Add filters section to readme.txt and document filters
 * Explicitly declare functions public
 * Minor code formatting changes (spacing)
 * Update copyright date (2011)
 * Add plugin homepage and author links in description in readme.txt

#### 2.0.1

 * Update plugin framework to C2C_Plugin_016 (fixes WP 2.9.2 compatibility issues)

#### 2.0

 * Fix compatibility with MU/Multi-site
 * Fix bug preventing admins from editing the profile of an account
 * Re-implementation by extending C2C_Plugin_011, which among other things adds 
   support for:
    - Reset of options to default values
    - Better sanitization of input values
    - Offload of core/basic functionality to generic plugin framework
    - Additional hooks for various stages/places of plugin operation
    - Easier localization support
 * Full localization support
 * Move count_multiple_accounts() to c2c_count_multiple_accounts()
 * Deprecate count_multiple_accounts(), but retain it (for now) for backwards compatibility
 * Move get_users_by_email() to c2c_get_users_by_email()
 * Deprecate get_users_by_email(), but retain it (for now) for backwards compatibility
 * Move has_multiple_accounts() to c2c_has_multiple_accounts()
 * Deprecate has_multiple_accounts(), but retain it (for now) for backwards compatibility
 * Rename global instance variable from allow_multiple_accounts to c2c_allow_multiple_accounts
 * Explicitly ensure $allow_multiple_accounts is global when instantiating plugin
   object
 * Note compatibility with WP 3.0+
 * Add ‘Text Domain’ header tag
 * Add omitted word in string
 * Minor string variable formatting changes
 * Update .pot file
 * Minor code reformatting (spacing)
 * Add PHPDoc documentation
 * Add package info to top of plugin file
 * Remove docs from top of plugin file (all that and more are in readme.txt)
 * Remove trailing whitespace in header docs
 * Add Template Tags and Upgrade Notice sections to readme.txt

#### 1.5

 * Fixed bug causing ‘Too many accounts…’ error to be incorrectly triggered
 * For retrieve password request emails, if the account is one associated with multiple
   accounts, list those account names in the email for informational purposes
 * Added class functions: count_multiple_emails(), get_users_by_email(), has_multiple_emails()
 * Exposed new class functions for external use via globally defined functions: 
   count_multiple_emails(), get_users_by_email(), has_multiple_emails()
 * Changed invocation of plugin’s install function to action hooked in constructor
   rather than in global space
 * Update object’s option buffer after saving changed submitted by user
 * Finalized full support for localization
 * Parameterized textdomain name
 * Used _n() instead of deprecated __ngettext()
 * Supported swappable arguments in translatable string
 * Miscellaneous tweaks to update plugin to my current plugin conventions
 * Noted compatibility with WP2.9.1
 * Dropped compatibility with versions of WP older than 2.8

#### 1.1

 * Added handling for admin creation of users for WP2.8
 * Improved query
 * Changed permission check
 * More localization-related work
 * Removed hardcoded path
 * Noted WP2.8 compatibility

#### 1.0

 * Initial release

## Meta

 *  Version **3.0.4**
 *  Last updated **8 години ago**
 *  Active installations **9.000+**
 *  WordPress version ** 3.6 or higher **
 *  Tested up to **4.2.39**
 *  Language
 * [English (US)](https://wordpress.org/plugins/allow-multiple-accounts/)
 * Tags
 * [account](https://mk.wordpress.org/plugins/tags/account/)[email](https://mk.wordpress.org/plugins/tags/email/)
   [multiple accounts](https://mk.wordpress.org/plugins/tags/multiple-accounts/)
   [registration](https://mk.wordpress.org/plugins/tags/registration/)[signup](https://mk.wordpress.org/plugins/tags/signup/)
 *  [Advanced View](https://mk.wordpress.org/plugins/allow-multiple-accounts/advanced/)

## Ratings

 5 out of 5 stars.

 *  [  21 5-star reviews     ](https://wordpress.org/support/plugin/allow-multiple-accounts/reviews/?filter=5)
 *  [  1 4-star review     ](https://wordpress.org/support/plugin/allow-multiple-accounts/reviews/?filter=4)
 *  [  0 3-star reviews     ](https://wordpress.org/support/plugin/allow-multiple-accounts/reviews/?filter=3)
 *  [  0 2-star reviews     ](https://wordpress.org/support/plugin/allow-multiple-accounts/reviews/?filter=2)
 *  [  0 1-star reviews     ](https://wordpress.org/support/plugin/allow-multiple-accounts/reviews/?filter=1)

[Your review](https://wordpress.org/support/plugin/allow-multiple-accounts/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/allow-multiple-accounts/reviews/)

## Contributors

 *   [ Scott Reilly ](https://profiles.wordpress.org/coffee2code/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/allow-multiple-accounts/)

## Donate

Would you like to support the advancement of this plugin?

 [ Donate to this plugin ](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=6ARCFJ9TX3522)