Import and export users and customers

Import and export users and customers using CSV files including custom user meta and roles.…

Clean and easy-to-use import and export users and customer plugin, for WordPress and WooCommerce. It includes custom user meta to be included automatically from a CSV file and delimitation auto-detector. It also is able to send a mail to each user imported and all the meta data imported is ready to edit into user profile.

  • Import CSV file with users directly to your WordPress or customers into WooCommerce
  • Import thousends of users or customers in only some seconds
  • Export users or customers to a CSV file, filtering by role or registered date
  • You can also import meta-data like data from WooCommerce customers
  • You can assign roles while importing
  • Send a mail to every new user, this mails can be saved as templates and are fully customizable, before sending you can test it
  • Use your own
  • You can also update users if the user is already in your WordPress
  • Create a cron task to import users periodically
  • Edit the metadata (you will be able to edit the metadata imported using metakeys directly in the profile of each user)
  • Extend the plugin using the hooks we provide

Moreover this plugin is compatible with many other plugins to be able to import and include them data, subscriptions, memberships, etc. Take a look:

  • WooCommerce: to import the customer data
  • WooCommerce Memberships: to import memberships
  • WooCommerce Subscriptions: to create subscriptions associated with users while they are being imported
  • BuddyPress: to import custom BuddyPress avatars, fields, groups and roles
  • Advanced Custom Fields: to import data to the fields you define there
  • Paid Membership Pro: to import memberships
  • Indeed Ultimate Membership Pro: to import memberships
  • Paid Member Subscriptions: to import memberships
  • Allow Multiple Accounts: plugin will allow the same rules importing than this plugin
  • Groups: to assign users to groups while importing
  • New User Approve: you can import users and approbe/wait for approve them
  • Users Group: to assign users to groups while importing
  • WP LMS Course: to enroll users in the courses while importing
  • WP Members: to import memberships
  • WP Users Group: to assign users to groups while importing
  • WooCommerce Membership by RightPress: to create memberships while users are being imported

If you have some problem or doubt:

  • Read our documentation
  • Ask anything in support forum, we try to give the best support

In Codection we have more plugins, please take a look to them.


  • Import users and customers from a CSV easily
  • And also extra profile information with the user meta data (included in the CSV with your custom fields)
  • Just upload the CSV file (one included as example)
  • All your users will be created/updated with the updated information, and of course including the user meta
  • Autodetect delimiter compatible with comma ,, semicolon ; and bar |
  • Export users and customers choosing delimiters and using some filters
  • Create a cron task to do the import periodically in order to integrate WordPress with an external system
  • Interaction with lots of other plugins like WooCommerce, BuddyPress, Paid Membership Pro, WooCommerce Memebership, WooCommerce Subscriptions and many others
  • Import users from frontend using a shortcode


Once the plugin is installed you can use it. Go to Tools menu and there, there will be a section called Insert users from CSV. Just choose your CSV file and go!

CSV generation

You can generate CSV file with all users inside it, using a standar spreadsheet software like: Microsoft Excel, LibreOffice Calc, OpenOffice Calc or Gnumeric.

You have to create the file filled with information (or take it from another database) and you will only have to choose CSV file when you “Save as…” the file. As example, a CSV file is included with the plugin.

Some considerations

Plugin will automatically detect:

  • Charset and set it to UTF-8 to prevent problems with non-ASCII characters.
  • It also will auto detect line-ending to prevent problems with different OS.
  • Finally, it will detect the delimiter being used in CSV file


  • Install Import and export users and customers automatically through the WordPress Dashboard or by uploading the ZIP file in the plugins directory.
  • Then, after the package is uploaded and extracted, click Activate Plugin.

Now going through the points above, you should now see a new Import users from CSV menu item under Tool menu in the sidebar of the admin panel, see figure below of how it looks like.

Plugin link from dashboard

If you get any error after following through the steps above please contact us through item support comments so we can get back to you with possible helps in installing the plugin and more.

Please read documentation before start using this plugin.

Columns position

You should fill the first two columns with the next values: Username, Email.

The next columns are totally customizable and you can use whatever you want. All rows must contains same columns. User profile will be adapted to the kind of data you have selected. If you want to disable the extra profile information, please deactivate this plugin after make the import.

id column

You can use a column called id in order to make inserts or updates of an user using the ID used by WordPress in the wp_users table. We have two different cases:

  • If id doesn’t exist in your users table: WordPress core does not allow us insert it, so it will throw an error of kind: invalid_user_id
  • If id exists: plugin check if username is the same, if yes, it will update the data, if not, it ignores the cell to avoid problems


We can use a column called “Password” to manage a string that contains user passwords. We have different options for this case:

  • If you don’t create a column for passwords: passwords will be generated automatically
  • If you create a column for passwords: if cell is empty, password won’t be updated; if cell has a value, it will be used

Serialized data

Plugin can import serialized data. You have to use the serialized string directly in the CSV cell in order the plugin will be able to understand it as an serialized data instead as any other string.


Plugin can import lists as an array. Use this separator: :: two colons, inside the cell in order to split the string in a list of items.

WordPress default profile data

You can use those labels if you want to set data adapted to the WordPress default user columns (the ones who use the function wp_update_user)

  • user_nicename: A string that contains a URL-friendly name for the user. The default is the user’s username.
  • user_url: A string containing the user’s URL for the user’s web site.
  • display_name: A string that will be shown on the site. Defaults to user’s username. It is likely that you will want to change this, for both appearance and security through * obscurity (that is if you don’t use and delete the default admin user).
  • nickname: The user’s nickname, defaults to the user’s username.
  • first_name: The user’s first name.
  • last_name: The user’s last name.
  • description: A string containing content about the user.
  • jabber: User’s Jabber account.
  • aim: User’s AOL IM account.
  • yim: User’s Yahoo IM account.
  • user_registered: Using the WordPress format for this kind of data Y-m-d H:i:s.

Multiple imports

You can upload as many files as you want, but all must have the same columns. If you upload another file, the columns will change to the form of last file uploaded.


You can export a file with all your users data using “Export” tab. There you will be able to find some filters and options to prepare your export.

Hooks: actions and filter

If you want to extend this plugin or use this plugin with any other, here you have a list with all hooks available in the plugin.

This plugin saved me a lot of time and work. Where can I donate?

Thanks, donations help us to continue improving our plugins and allow us to give the best support in the forums Donate Here via PayPal.

I’m not sure I will be able to import all users with correct data and roles. Will you do it for me?

Of course! In Codection we help you to import, migrate, synchronized, update or any other operation you will need to do with your users. Contact us at [email protected] for more information.

Free and premium support

You can get:

Customizations, addons, develops…

Write us directly to [email protected].

  • Improved messages when deleting users not present in CSV
  • Fixed error when a WP_Error appear into an array, when the array is being printed

  • Improved BuddyPress group management when importing, now you can remove users from a group
  • Improved BuddyPress import, now you can use group ids and not only group slugs

  • New filter to override default permission_callback in rest-api method to call cron


  • New feature added actions, now you can assign posts while you are importing users
  • Code improvements

  • Addon included for WP User Manager – WPUM Groups
  • BuddyPress addon improved


  • New addon included for WPML
  • Email templates are being sent translated if you use the “locale” column in your CSV, so every user will receive the email translated in their own langauge

  • Warning solved, it appears sometimes importing in strtolower operation over roles

  • Bugs fixed exporting users

  • Roles are always managed as small letters to minimize problems writing them
  • Fixed bug exporting metadata that are objects
  • Included new filter in prepare export value

  • Fixed bug in mail templates when wp_editor is disabled

  • In multisite, default role is subscriber if this is not set

  • In multisite, user is added to current blog with role subscriber if user choose to no update roles but the user does not exist there


  • New errors, warnings and notices reporting methods
  • DataTable used to improve data visualization

  • Included an addon for LearnDash to explain how to proceed with an import of students

  • Fixed problem with BuddyPress addon and BP_Groups_Member class

  • New version released

  • Bug fixed importing users


  • Many code changes, making it simpler to include more features and make it easier to debug in a future
  • Export bug fixed: the plugin exports an empty role column that breaks the CSV
  • You can now test cron task from the “Cron” settings tab

  • Fixed problem in “Mail options” that does not allow to remove attachments


  • You can choose what to do with users that being updated, their email has changed: you can update it, skip this user, or create a new user with a prefix

  • When you are exporting data we scape every first data if it starts with a +, -, =, and @ including a \ to prevent any unwanted formula execution in a spreadsheet that will be working with the CSV

  • New option in standard import to choose if passwords should be updated when updating users

  • Export data can now be ordered alphabetically

  • Extra profile fields now can be used also when registering a new user

  • Username now can be empty, in this case, we generate random usernames
  • Code improvements

  • BuddyPress/BuddyBoss avatar can now be imported
  • Code improvements


  • Now you can use HTML emails
  • Code improvements


  • Email sending function created
  • Test email button included

  • Fixed problem importing ACF textarea and other type fields

  • Fixed problem importing ACF text fields

  • BuddyPress member type is now included in the export

  • Usability improve when using delete users not present in CSV (change role options is disabled because they can’t run)
  • Performance optimization, if user is deleted, it cannot be tried to change role

  • New wildcards included in emails for WooCommerce: woocommercelostpasswordurl, woocommercepasswordreseturl and woocommercepasswordreseturllink


  • Multisite check and fix issues
  • Addon to include compatibility included Paid Member Subscriptions by Cozmoslabs thanks to Marian Lowe


  • Code is being rewritten to make it easy to update
  • New filter added to override the necessary capatibily to use the plugin

  • We try to make the plugin compatible with BuddyPress related themes and plugins that uses their functions but they are not BuddyPress really
  • Problems exporting file when a site is behind CloudFare fixed

  • You can now export data from BuddyPress groups
  • BuddyPress addon is now a class instead of different methods


  • You can now export data from BuddyPress fields

  • Added shipping_phone as non date key to avoid datetime conversion


  • REST API endpoint added to execute cron calling the site remotely

  • Problems with apostrophes solved

  • Tested up to WordPress 5.5
  • Improvements in timestamp data export

  • UTF-8 fixed exporting users

  • Bug fixed: after importing new customers, new WooCommerce tables was not populated properly and they were not shown in the “Customers” list into WooCommerce, thanks for reporting @movementoweb (


  • Addon included to import data defined by WooCommerce Custom Fields by Rightpress

  • Cron import fixed. It failed because of get_editable_roles was not declared in cron import
  • Check if role exists in order to show a better message when importing

  • A non-user admin could delete himself automatically deleting users not present in CSV (thanks again to @nonprofitweb
  • Improved “Users only can import users with a role that they allowed to edit” thanks also to @nonprofitweb
  • Forms has now classes to be able to customize the way they are shown using CSV thanks again to @nonprofitweb

  • Added multiple hooks to filter all about emails being sent when importing
  • Included new variables in hooks that already exists in emails being sent when importing

  • Users only can import users with a role that they allowed to edit (thanks to @nonprofitweb

  • Now you can use variables also in Subject, thanks to @vbarrier (

  • Problems with roles being updated that should not be updated in multisite fixed

  • Export checkbox included to avoid conversion to date format to prevent problem with some data converted that should not be converted

  • ACF addon now append values instead of replacing it


  • ACF compatibility included

  • var_dump forgotten
  • Up to version updated

  • Bug fixed in BuddyPress importer
  • Little improvement in extra profile fields

  • Deletion process performance improved
  • Now you can specify if only want to delete users of specified role using a new attribute in the frontend import

  • Extra profile fields now can be reseted

  • Array to string conversion fixed in emails being sent
  • Problems importing data from WooCommerce Membership fixed (thanks to grope-ecomedia)

  • Export improved to avoid more data to be exported as date
  • Tested up to WordPress 4.0

  • List of hooks created and included

  • In export, now user id is called “source_user_id” to avoid problems importing

  • Groups can be now imported by their name instead only of their ids

  • Bug fixed in frontend import, roles being updated when it shouldn’t be updated thanks to @widevents for reporting (

  • Email notification can be sent to administrator of the website when someone use the frontend importer
  • Code improvement

  • Bug found on export fixed

  • MailPoet addon included (in previous we forgot to include the file)


  • MailPoet addon added to include users in list when they are being imported

  • New filter to override message when file is bad formed

  • Duplicate email error thrown updating users

  • New filters added

  • Double email fixed


  • WooCommerce Subscriptions importer included to create subscriptions at the same time you are importing users
  • New hooks added
  • Code improved

  • New shortcut into WordPress importer and exporter default tools to find this one easier

  • Bug fixed in “Mail options”

  • You can now use WordPress default user edited and created emails when importing users
  • WooCommerce Membership by RightPress compatibility included, now you can assign users to their plan while they are being imported

  • WooCommerce Membership addon improved, now you can only assign users to a plan using the membership_plan_id

  • Bug fixed

  • Role included in export
  • test.csv improved
  • Different code improvements


  • Multisite compatiility improved now you can assign users to blogs after import

  • Fixes some issues exporting date and time values

  • Part of the code of frontend has been rewritten to improve readibility
  • New options in frontend upload

  • Changed name into repository to describe better what plugin does
  • Frontend shortcode now accepts role parameter


  • You can now select which delimiter is used in the CSV exports and also you can choose the date time format in date time and timestamps date

  • You can now filter users that are being exported by role and user registered date


  • New tab with a list of all meta keys found in the database, with the type of it and an example to be able to use it in your imports

  • Only users who can create users, can export them


  • Export option included

  • Changed the way HTML emails are declared to prevent problems with plugins like WP HTML Mail

  • Included compatibility with WP User Avatar to import avatar images while the import is being executed, thanks to the support of

  • user_login and show_admin_bar_front are included as WordPress core fields to avoid showing it as custom meta_keys thanks to
    Michael Finkenberger

  • New filters added to custom message shown in log or regular import
  • Last roles used are remembered in import, to avoid you have to choose all time different roles

  • Fixed a problem with a nonce that was bad named

  • Removed some tags when printing log in cron job
  • Improved error message with Customer Area Addon

  • Fixed other problem thanks to @alexgav (

  • Fixed some problems thanks to @alexgav (

  • Added CSS to fix table mobile view

  • Problems uploading users from fronted fixed


  • Filter added to fix CSV files upload problems

  • Typos fixed thanks to

  • Problem using “Yes, add new roles and not override existing one” was fixed

  • Change period was not working if you did not deactivate first the cron job, now it is solved and you can do it without deactivating cron job

  • Role default problem fixed thanks for all the one who notice the bug

  • Addon to import groups of Customer Area Managed Area included

  • Removed old code parts from SMTP settings that now are not available and could create warnings

  • Problem fixed deleting old CSV files

  • Problem fixed in cron job

  • HTML problems fixed

  • Global variable with url of plugin removed

  • More nonces included

  • Directory traversal attack prevented


  • Authenticated Media Deletion Vulnerability fixed in acui_bulk_delete_attachment
  • Nonces incorporated in different AJAX and forms to improve security
  • Media type of media deleted check to avoid problems deleting files
  • SMTP configuration removed completely, we recommend to use a SMTP plugin if you need it in the future, this part was deprecated some versions ago
  • plugins_url() now is well called so images, files and other assets will be shown properly in all cases
  • Data is sanitized always to prevent security and user problems

  • XSS problem fixed when displaying data imported

  • New Spanish hosting partner included
  • Link added to new review

  • We have changed some empty() check to === ” check, to avoid problems with values like blank spaces (thanks to


  • Compatibility with Groups plugin (

  • WP-CLI does not manage our previous version
  • New tab “New features” added

  • Bug fixed

  • passwordreseturllink shows reset password url with a link in HTML

  • Filter improved to avoid strange characters in emails

  • Notice fixed from last change

  • Role now is not required when importing

  • Fix to save email options bug (that appeared in last version)

  • Security fixes to prevent Reflected Cross Site Scripting (XSS) and Cross Site Request Forgery (CSRF), thanks to Application Security for reporting

  • get_users used memory improved filtering fields returned, thanks to @shortcutsolutions (

  • Echo removed from class to prevent message on activation


  • Options management improved
  • GUI improved
  • Now you can change the role of users that are not in the CSV file thanks to California Advocates Management Services


  • Attachments in email templates and mail options now can be deleted thanks to Joel Frankwick


  • Email templates loads also the attachment in Mail options when they are selected thanks to Joel Frankwick


  • Now you can delete users that are not in the CSV file, not only when you are doing an import based on a cron task, but also when you do it from the dashboard or with the shortcode in the frontend thanks to
  • Documentation improved
  • Bug fixed
  • Tested up to 5.1

  • Notices fixed
  • Some file deleted and some urls fixed

  • Plugin is now compatible with plugins that change login url, thanks to @2candela2 (


  • wpml-config.xml added to improve compatibility with WPML
  • Warnings fixed

  • Fixed some files that were not included in the trunk


  • New addon added thanks to @egraznov in order to make possible to import data from LifterLMS


  • New hooks added to make possible to include new tabs from an addon

  • Fatal error fixed in frontend tab


  • Integration with Paid Membership Pro improved thanks to @joneiseman (

  • Readme updated

  • Readme fixed

  • SMTP settings removed, old link was yet placed and caused misunderstandings, thanks to @paulabender for the notice
  • Tested up to WordPress 5.0.3


  • Extra check to avoid problems with CSV bad formed
  • Plugin can now manage attachments in email sending and email templates thanks to Immersedtechnologies
  • Part of the code has been rewritten using classes
  • We have changed the way of detecting the delimiter (thanks to @chaskinsuk


  • Filter added to avoid script inside values of each cells to prevent XSS attacks, thanks for reporting Slawek Zytko


  • Plugin can now manage email templates for managing mails which are sent to users thanks to Immersedtechnologies

  • Documentation improved with some notes about roles management thanks to @stephenfourie (

  • Redeclaration of str_getcsv removed, this is not necessary because of all new PHP versions contains it

  • Filters included for auto password generated
  • Tested up to WordPress 5.0

  • Empty email check added thanks to @malcolm-oph (

  • Mail address with data of users can now be overriden thanks to a new filter

  • Plugin is now compatible with Vimeo Sync Membership thanks to Justin Snavely

  • Now you can use the WordPress loaded schedules in the cron import instead of the three default one thanks to PM2S
  • Mail cron sending fixed issues

  • New hooks added thanks to Joel Frankwick in order to make possible to change default wp_mail() headers

  • New hooks added thanks to @malcolm-oph (

  • Fixed bug thanks to @xenator for discovering the bug (

  • Fixed mail sending in frontend import
  • Now you can activate users with WP Members in frontend import
  • Some fixes and warnings added

  • Fixes and improvements thanks to @malcolm-oph

  • Role import working in cron jobs

  • SMTP tab hidden for user which are not using this option

  • Bug fixed: thanks to @oldfieldmike for reporting and fixing a bug present when BuddyPress was active (

  • Added compatibility to import levels from Indeed Ultimate Membership Pro
  • Fixed role problems when importing

  • Patreon link included and some other improvements to make easier support this develop
  • Deprecated notices included about SMTP settings in this plugin

  • Thanks to Sebastian Mellmann(@xenator) a bug have been solved in password management in new users


  • Thanks to @xenator you can now import users with Allow Multiple Accounts with same Mail via cron


  • Problem with WordPress default emails fixed


  • Sidebar changed
  • Readme completed


  • You can now import users from the frontend using a shortcode thanks to Nelson Artz Group GmbH & Co. KG


  • You can now import User Groups ( and assign them to the users


  • You can now import WP User Groups ( and assign them to the users thanks to the support of Arturas & Luis, Lda.

  • Debug notice shown fixed (thanks for submiting the bug @anieves (


  • Administrator are not deleted in cron task
  • Some hashed passwords was not being imported correctly because of wp_unslash() function into wp_insert_user(), issue fixed


  • Thanks to Attainable Adventure Cruising Ltd now the system to import passwords hashed directly from the CSV has been fixed
  • Thanks to Kevin Price-Ward and Peri Lane now the system does not include the default role when creating a new user
  • Plugin tested up to WordPress 4.9.4

  • Thanks to @lucile-agence-pulsi for reporting a bug ( now this is solved


  • Thanks to the support of Studio MiliLand ( we can now import data to Paid Membership Pro Plugin

  • Thanks to @Carlos Herrera we can now import date fields from BuddyPress

  • Bug fixed


  • New system for include addons
  • You can now import data from WooCommerce Membership thanks to Lukas from
  • Tested up to WordPress 4.9

  • Bug solved in cron import, now mails not being sent to user who are being updated unless you activate those mails

  • Plugin now remember if user has selected or not mail sending when doing a manual import, to select by default this option next time

  • Some of the plugins options are disabled by default to prevent unwanted mail sending

  • Improve email notification disable

  • Sending mail in standard import bug solved, thanks to @manverupl for the error report.


  • New feature thanks to Todd Zaroban (@tzarob) now you can choose if override or not current roles of each user when you are updating them
  • Problem solved in repeated email module thanks to @damienper (
  • Problem solved in mail sending with cron thanks to @khansadi (

  • Thanks to Peri Lane from Apis Productions you can now import roles from CSV. Read documentation to see the way to work.

  • Thanks to @fiddla for debugging all this, as update_option with a value equals to true is saved as 1 in the database, we couldn’t use the ==! or === operator to see if the option was active or not. Sorry for so many updates those days with this problems and thanks for the debugging

  • Bug fixed (now yes) when moving file including date and time thanks to @fiddla

  • Bug fixed when moving file including date and time

  • Bug fixed thanks to @ov3rfly (
  • Documentation also included in home page of the plugins thanks to suggestions and threads in forum

  • If multisite is enabled it adds the user to the blog thanks to Rudolph Koegelenberg
  • Tested up to 4.8

  • Documentation fixed: if user id is present in the CSV but not in the database, it cannot be used to create a new user

  • New hook added do_action(‘post_acui_import_single_user’, $headers, $data, $user_id );

  • Added documentation about locale and BuddyPress Extendend Profile
  • Header changed to avoid any problem about plugin header

  • Fix error in importer.php about delete users (


  • Now you can hide the extra profile fields created with the plugin thanks to Steph O’Brien (Ruddy Good)


  • Now you can import list of elements using :: as separator and it can also be done in BuddyPress profile fields thanks to Jon Eiseman
  • Fixes in SMTP settings
  • SMTP settings now is a new tab


  • Now you can assign BuddyPress groups and assign roles in import thanks to TNTP (
  • Import optimization
  • Readme fixed

  • Bug fixed in SMTP settings page


  • Plugin is now prepared for internacionalization using

  • German translation fixed thanks to @mfgmicha
  • locale now is considered a data from WordPress user so it won’t be shown in profiles

  • German translation fixed thanks to @barcelo
  • System compatibility updated


  • New User Approve support fixed thanks to @stephanemartinw (


  • Plugin can now import serialized data.
  • New filter added: $data[$i] = apply_filters( ‘pre_acui_import_single_user_single_data’, $data[$i], $headers[$i], $i); now you can manage each single data for each user, maybe easier to use than pre_acui_import_single_user_data

  • Now you can automatically rename file after move it. Then you won’t lost any file you have imported (thanks to @charlesgodwin)

  • Password bug fixed. Now it works as it should (like it is explained in documentation)

  • Bug fixed in importer now value 0 is not considered as empty thanks to @lafare (

  • From now we are going to keep old versions available in repository
  • We don’t delete loaded columns (and fields) when you deactivate the plugin
  • Password is not auto generated when updating user in order to avoid problems (missing password column and update create new passwords and use to create problems)

  • Now you can set the email to empty in each row thanks to @sternhagel

  • German language added thanks to Wolfgang Kleinrath
  • Added conditional to avoid error on mail sending

  • Now you can choose if you want to not assign a role to users when you are making an import cron

  • Now you can choose if you want to assign to some user the posts of the users that can be deleted in cron task

  • French translation added thanks to @momo-fr


  • Plugin now is localized using i18n thanks to code provided by Toni Ginard @toniginard

  • Bug fixed in cron import, nonce conditional check, thanks to Ville Kokkala for showing the bug


  • Password reset url is now available to include in body email thanks to Mary Wheeler (


  • Thanks to Bruce MacPherson we can now choose if we don’t want update users roles when importing data if user exist
  • Clearer English thanks to Bruce MacPherson


  • Thanks to Jason Lewis we can now choose if we don’t want update users when importing data if user exist


  • Important security fixes added thanks to

  • New filter added, thanks to @burton-nerd

  • Renamed function to avoid collisions thanks to the message of Jason Lewis

  • Fix for the last one, we set true where it was false and vice versa

  • We try to make it clear to choose if mails (the one we talked in are being sent or not

  • Automatic WordPress emails sending deactivated by default when user is created or updated, thanks to Peter Gariepy

  • wpautop added again


  • user_pass can be imported directly hashed thanks to Bad Yogi


  • Now you can move file after cron, thanks to Yme Brugts for supporting this new feature


  • New hook added, thanks to borkenkaefer


  • Fix new feature thanks to bixul ( )


  • New feature thanks to Ken Hagen – V3 Insurance Partners LLC, now you can import users directly with his ID or update it using his user ID, please read documentation tab for more information about it
  • New hooks added thank to the idea of borkenkaefer, in the future we will include more and better hooks (actions and filters)
  • Compatibility with New User Approve fixed



  • Checkbox included in order to avoid sending mail accidentally on password change or user updated.

  • Documentation updated.

  • Autoparagraph in email text to solve problem about all text in the same line.
  • Tested up to 4.5.1

  • Bug in delete_user_meta solved thanks for telling us lizzy2surge

  • Bug in HTML mails solved


  • You can choose between plugin mail settings or WordPress mail settings, thanks to Awaken Solutions web design (



  • Include code changed, after BuddyPress adaptations we break the SMTP settings when activating


  • Labels for mail sending were creating some misunderstandings, we have changed it


  • Deleted var_dump message to debug left accidentally


  • BuddyPress fix in some installation to avoid a fatal error


  • Now you have to select at least a role, we want to prevent the problem of “No roles selected”
  • You can import now BuddyPress fields with this plugin thanks to AndrĂ© Ihlar


  • Email template has an own custom tab thanks to Amanda Ruggles
  • Email can be sent when you are doing a cron import thanks to Amanda Ruggles


  • Now you can choose if you want to send the email to all users or only to creted users (not to the updated one) thanks to Remy Medranda
  • Compatibility with New User Approve ( included thanks to Remy Medranda


  • Metadata can be sent in the mail thanks to Remy Medranda


  • Bad link fixed and new links added to the plugin


  • Capability changed from manage_options to create_users, this is a better capatibily to this plugin


  • Bug solved when opening tabs, it were opened in incorrect target
  • Documentation for WooCommerce integration included


  • Bug solved when saving path to file in Cron Import (thanks to Robert Zantow for reporting)
  • New tabs included: Shop and Need help
  • Banner background from updated


  • Users which are not administrator now can edit his extra fields thanks to downka (


  • Plugin is now compatible with WordPress Access Areas plugin ( thanks to Herbert (
  • Added some notes to clarify the proper working of the plugin.


  • Bug solved. Thanks for reporting this bug:


  • New GUI based on tabs easier to use
  • Thanks to Michael Lancey ( Mckenzie Chase Management, Inc. ) we can now provide all this new features:
  • File can now be refered using a path and not only uploading.
  • You can now create a scheduled event to import users regularly.


  • Bugs detected and solved thanks to a message from Periu Lane and others users, the problem was a var bad named.


  • Default action for empty values now is: leave old value, in this way we prevent unintentional deletions of meta data.
  • Included donate link in plugin.


  • Thanks to Carmine Morra ( for reporting problems with


p> and
tags in body of emails.


  • Thanks to Matthijs Mons: now this plugin is able to work with Allow Multiple Accounts ( and allow the possibility of register/update users with same email instead as using thme in this case as a secondary reference to the user as the username.


  • Now options that are only useful if some other plugin is activated, they will only show when those plugins were activated
  • Thanks to Carmine Morra ( for supporting the next two big features:
  • New role manager: instead of using a select list, you can choose roles now using checkboxes and you can choose more than one role per user
  • SMTP server: you can send now from your WordPress directly or using a external SMTP server (almost all SMTP config and SMTP sending logic are based in the original one from WP Mail SMTP – When the plugin finish sending mail, reset the phpmailer to his previous state, so it won’t break another SMTP mail plugin.
  • And this little one, you can use email in mail body to send to users their email (as it existed before: loginurl, username, password)


  • Thanks to idealien, if we use username to update users, the email can be updated as the rest of the data and metadata of the user and we silence the email changing message generated by core.


  • Thanks to Mitch ( mitch AT themilkmob DOT org ) for reporting the bug, now headers do not appears twice.


  • Thanks to Adam Hunkapiller ( of ) have supported all this new functionalities.
  • You can choose the mail from and the from name of the mail sent.
  • Mail from, from name, mail subject and mail body are now saved in the system and reused anytime you used the plugin in order to make the mail sent easier.
  • You can include all this fields in the mail: “user_nicename”, “user_url”, “display_name”, “nickname”, “first_name”, “last_name”, “description”, “jabber”, “aim”, “yim”, “user_registered” if you used it in the CSV and you indicate it the mail body in this way FIELD_NAME, for example: first_name


  • Due to some support threads, we have add a different background-color and color in rows that are problematic: the email was found in the system but the username is not the same


  • Thanks to Peri Lane for supporting the new functionality which make possible to activate users at the same time they are being importing. Activate users as WP Members plugin ( consider a user is activated


  • Thanks to Kristopher Hutchison we have add an option to choose what you want to do with empty cells: 1) delete the meta-data or 2) ignore it and do not update, previous to this version, the plugin update the value to empty string

  • Previous version does not appear as updated in repository, with this version we try to fix it

  • In WordPress Network, admins can now use the plugin and not only superadmins. Thanks to @jephperro

  • Solved some typos. Thanks to Jonathan Lampe

  • JS bug fixed, thanks to Jess C


  • List of old CSV files created in order to prevent security problems.
  • Created a button to delete this files directly in the plugin, you can delete one by one or you can do a bulk delete.


  • Fixed a problem with iterator in columns count. Thanks to alysko for their message:


  • After upload, CSV file is deleted in order to prevent security issues.


  • Thanks to idealien for telling us that we should check also if user exist using email (in addition to user login). Now we do this double check to prevent problems with users that exists but was registered using another user login. In the table we show this difference, the login is not changed, but all the rest of data is updated.


  • Bug in image fixed
  • Title changed


  • Warning with sends_mail parameter fixed
  • Button to donate included


  • Screenshot updated, now it has the correct format. Thank to gmsb for telling us the problem with screenshout outdated


  • Thanks to @jRausell for solving a bug with a count and an array


  • WooCommerce fields integration into profile
  • Duplicate fields detection into profile
  • Thanks to @derwentx to give us the code to make possible to include this new features


  • This is the biggest update in the history of this plugin: mails and passwords generation have been added.
  • Thanks to @jRausell to give us code to start with mail sending functionality. We have improved it and now it is available for everyone.
  • Mails are customizable and you can choose
  • Passwords are also generated, please read carefully the documentation in order to avoid passwords lost in user updates.


  • Extra format check done at the start of each row.


  • Thanks to twmoore3rd we have created a system to detect email collisions, username collision are not detected because plugin update metadata in this case


  • Thanks to Graham May we have fixed a problem when meta keys have a blank space and also we have improved plugin security using filter_input() and filter_input_array() functions instead of $_POSTs


  • From this version, plugin can both insert new users and update new ones. Thanks to Nick Gallop from Weston Graphics.


  • Donation button added.


  • Fixed problems with \n, \r and \n\r inside CSV fields. Thanks to Ted Stresen-Reuter for his help. We have changed our way to parse CSV files, now we use SplFileObject and we can solve this problem.


  • From this version, plugin can both insert new users and update new ones. Thanks to Nick Gallop from Weston Graphics.


  • Donation button added.


  • Fixed problems with \n, \r and \n\r inside CSV fields. Thanks to Ted Stresen-Reuter for his help. We have changed our way to parse CSV files, now we use SplFileObject and we can solve this problem.


  • You can import now user_registered but always in the correct format Y-m-d H:i:s


  • Now plugins is only shown to admins. Thanks to flegmatiq and his message


  • Problem solved appeared in 1.1.3: sometimes array was not correctly managed.


  • As fgetscsv() have problems with non UTF8 characters we changed it and now we had problems with commas inside fields, so we have rewritten it using str_getcsv() and declaring the function in case your current PHP version doesn’t support it.


  • fgetscsv() have problems with non UTF8 characters, so we have changed it for fgetcsv() thanks to a hebrew user who had problems.


  • Some bugs found and solved managing custom columns after 1.1.0 upgrade.
  • If you have problems/bugs about custom headers, you should deactivate the plugin and then activate it and upload a CSV file with the correct headers again in order to solve some problems.


  • WordPress user profile default info is now saved correctly, the new fields are: “user_nicename”, “user_url”, “display_name”, “nickname”, “first_name”, “last_name”, “description”, “jabber”, “aim” and “yim”
  • New CSV example created.
  • Documentation adapted to new functionality.


  • Bug with some UTF-8 strings, fixed.


  • The list of roles is generated reading all the roles avaible in the system, instead of being the default always.


  • Issue: admin/super_admin change role when file is too large. Two checks done to avoid it.


  • Issue: Problems detecting extension solved (array(‘csv’ => ‘text/csv’) added)


  • Issue: Existing users role change, fixed


  • First release
  1. Plugin link from dashboard

    Plugin link from dashboard

  2. Plugin page

    Plugin page

  3. CSV file structure

    CSV file structure

  4. Users imported

    Users imported

  5. Extra profile information (user meta)

    Extra profile information (user meta)