Try it out on your free dummy site: Click here => https://demo.tastewp.com/import-users-from-csv-with-meta
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
- Compatible with WPML read the documentation to see how you can translate the front-end import and export users page and send translated email notifications to users
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, included compatibility with PMPro version 3
- 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
- WP Private Content Plus: To import and export the groups to which users are assigned
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.
- RedSys Gateway for WooCommerce Pro a plugin to connect your WooCommerce to RedSys (premium)
- Ceca Gateway for WooCommerce Pro a plugin to connect your WooCommerce to Ceca (premium)
- RedSys Button for WordPress a plugin to receive payments using RedSys in WordPress without using WooCommerce (premium)
- RedSys Gateway for Contact Form 7 a plugin to receive payments using RedSys in WordPress using the popular contact plugin Contact Form 7 (premium)
- Ceca Gateway for Contact Form 7 a plugin to receive payments using Ceca in WordPress using the popular contact plugin Contact Form 7 (premium)
- RedSys Gateway for WP Booking Calendar Pro a plugin to receive payments using RedSys in WordPress using WP Booking Calendar Pro (premium)
- RedSys Gateway for Goodlayers Tourmaster Pro a plugin to receive payments using RedSys in WordPress using Goodlayers Tourmaster Pro (premium)
- Clean Login a plugin to create your own register, log in, lost password and update profile forms (free)
- Products Restricted Users for WooCommerce a plugin to restrict product visibility by user (free)
- First payment date for WooCommerce Subscriptions a plugin to set a first payment date in membership sites with WooCommerce Subscriptions (free)
- Payment Schedule for WooCommerce Subscriptions (premium)
- 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
- 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!
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.
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.
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.
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.
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
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.
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@example.com for more information.
Free and premium support
You can get:
Customizations, addons, develops…
Contribuidores e programadores
“Import and export users and customers” é software de código aberto. As seguintes pessoas contribuíram para este plugin:Contribuidores
“Import and export users and customers” foi traduzido para 9 locales. Obrigado aos tradutores pelas suas contribuições.
Interessado no desenvolvimento?
Registo de alterações
- Included compatibility with version 3 of Paid Membership Pro
- Included a new filter to filter a specific data in the export: acui_export_data_$key where $key is the specific value of the column for that value.
- Including a conditional check to prevent WooCommerce from being declared active if it is not active because it has been forcefully deactivated
- On the home page, for importing users we now show the buttons to start the process or save the settings at the top, to facilitate cases where the same options are used repeatedly
- You can now use multiple user download buttons on the front end. Each with its own options.
- Changed the way charsets are converted
- Fixed a problem in select2 selector with AJAX call
- Fixed an issue when passing the value of which user to assign tickets to when users are deleted
- Cron call using endpoint of REST-API now can only be done by users that can create users
- Included new options in the shortcode to export users
- Fixed a problem with a preg_match detecting commas
- Improved the way input strings are treated to UTF-8
- Variables displayed in the shortcode are cleaned up before printing to allow only correct values for them
- In the cron settings, when it comes to URLs or paths, if it comes to paths and any with a different ending than “.csv” is included, we return a blank string to avoid problems
- Fixed a problem when choosing to delete users not present in the CSV that caused more users to be deleted than it should
- Improved multisite support, multiple roles can now be added to sites instead of just one as before
- Included ActionScheduler for cron task
- Added the word ‘all’ to use in the column named ‘blogs’ in multisite installation, users it will be added to all the blogs in the network
- Rewritten a large part of the user importer to improve the code and make it more modular and maintainable.
- Improved compatibility with PHP 8.2
- Fixed typos
- Ready for WordPress 6.4
- New shortcode import-users, we keep the old one, import-users-from-csv-with-meta, to assure compatibility
- Fixed an issue with the export users shortcode not working when the theme did not load jQuery in the front end
- Including the possibility to choose a comma-separated list of user roles when using the export in the front end using a shortcode
- Replaced the blanks in the label identifiers in the “Custom profile fields” with underscores to make the generated identifiers valid, the identifiers are also converted to lowers
- New option in export tab that allow you to export arrays as separated list of values, separated by commas; it will only work with: 1 dimension arrays with correlative indexes that does not contain inside any WP_Error object
- Save settings problem in Export tab fixed
- Export preferences are now saved when an export is executed
- New button to save export preferences without having to run an export
- Fixed a problem that caused that in certain installations with some data when exporting, an error appeared that stopped the process.
- The plugin now supports reading external files directly created from Google Drive using export CSV option in URL
- The plugin now supports reading external files using a URL when a path is chosen for importing
- BuddyPress/BuddyBoss documentation improved
- Advanced Custom Fields (ACF) addon now includes the ability of uploading images
- Fix a problem when importing BuddyPress/BuddyBoss data in some installation where the class BP_Groups_Member did not exists
- New hook to be able to update users without mail
- Fix a problem when exporting users that ignores the convert timestamp to dates setting thanks to @little_bird for reporting
- Improved the use of the ACUI_Helper with new methods that call directly the instance
- Now when you create a customer importing it, it will also appear in wc_customer_lookup table
- Ready for WordPress 6.3
- Removed a duplicated hook thanks to @ko31
- Ready for WordPress 6.2.2
- Fixed a bug in export when all columns were selected
- When choosing columns to export, the spaces at the beginning and end of each chosen column are now removed to avoid problems such as “user_login, user_email” not returning data in the second column because the ” user_email” column did not exist as such.
- Fixed a problem that appeared when you chose to delete users not present in the CSV and at the same time checked do not update users. Users that already existed were not updated and were not marked not to delete, so they were deleted incorrectly.
- Addon for MelaPress Login Security improved
- Transient with users created, updated, deleted and ignored added after import
- Ready for WordPress 6.2
- New addon for MelaPress Login Security, now when a user is registered and this plugin is activated, if the option of “Reset password in first login” of the MelaPress Login Security is activated, it will be applied the same for new users imported as it were created manually
- Changed delimiter to import checkbox values in BuddyPress/BuddyBoss, instead of using commas, now the delimiter is ## to avoid problems with values that include commas
- New filter added to allow to override the default roles that cannot be updated by the plugin
- Fixed problem that makes appears title “Extra profile information” when there were no fields to show
- Changed the way that BuddyBoss is detected in BuddyPress Addon to avoid problems with paths
- New hooks added in documentation
- Documentation tab improved
- Included a new way to manage the passwordreseturl wildcard in emails
- Fixed warning about not defined default value in settings class
- Now the date filter when exporting users is inclusive, so that the days selected in the search are included in the search and not excluded as before
- Fixed a problem in export that sometimes generate problems different number of columns in headers and in every user
- Fixed a problem with the keys to reset password of users included in the emails
- Improved compatibility with ACF, now the fields of type image or file, generate in the export a new field, with the suffix _url where to show the url of the content and not only the identifier of the attachment in the database as before that was not representative.
- Improved user interface
- Fixed a problem when sending email content, which caused the password to always appear as if it had not been changed even though it really had
- Export results included after export is done, including if some value has been altered because it can contains some spreadsheet formula characters at the beginning
- You can use now all the wildcards in subjects that were available in body
- Fixed some issues when exporting data using filtered columns, now source_user_id is filled correctly
- Fixed a problem with BuddyBoss when exporting users if groups were getting used
- Improved the way the plugin sanitize values when exporting data to avoid any formula (for spreadsheets) to be exported
- Improved error handling to avoid the use of wp_die in some error handling and allow for better UX.
- When choosing a file to import in the frontend import, the name of the file appears, this is something that was lost in yesterday’s graphical improvement of this part of the import
- Changed the way the button to choose files in the import from front end is displayed to make it easier to apply styles to it
- Improved error detection when importing users from the front end
- Improved section on forcing password reset, including new explanations in the documentation and a tool to reset user data in case a redirection loop problem is encountered
- Fixed an issue that caused the new import screen to be displayed as part of the import results screen
- Improved the way this plugin displays with the other WordPress export tools
Notice improved when an email exists in the system with other username