{"id":386473,"date":"2026-10-14T12:56:50","date_gmt":"2026-10-14T12:56:50","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/user-export-manager-pro\/"},"modified":"2026-10-14T12:56:19","modified_gmt":"2026-10-14T12:56:19","slug":"userferry","status":"publish","type":"plugin","link":"https:\/\/mg.wordpress.org\/plugins\/userferry\/","author":23584823,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.0","stable_tag":"1.0.0","tested":"7.1.3","requires":"6.2","requires_php":"7.4","requires_plugins":null,"header_name":"UserFerry \u2013 Export & Import Users","header_author":"Md. Farhan Sadik","header_description":"Export and import WordPress users with their custom profile fields \u2014 CSV, Excel (XLSX), JSON or XML. Reusable export templates and a downloadable history.","assets_banners_color":"9c9fb6","last_updated":"2026-10-14 12:56:19","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"","rating":0,"author_block_rating":0,"active_installs":0,"downloads":42,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"farhansadik01","date":"2026-10-14 12:56:19","revision":3746398}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.gif":{"filename":"icon-128x128.gif","revision":3746398,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.gif":{"filename":"icon-256x256.gif","revision":3746398,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3746398,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3746398,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3746398,"resolution":"1","location":"assets","locale":"","width":1440,"height":900},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3746398,"resolution":"2","location":"assets","locale":"","width":1440,"height":900},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3746398,"resolution":"3","location":"assets","locale":"","width":1440,"height":900},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3746398,"resolution":"4","location":"assets","locale":"","width":1440,"height":900},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3746398,"resolution":"5","location":"assets","locale":"","width":1440,"height":900},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3746398,"resolution":"6","location":"assets","locale":"","width":1440,"height":900},"screenshot-7.png":{"filename":"screenshot-7.png","revision":3746398,"resolution":"7","location":"assets","locale":"","width":1440,"height":900}},"screenshots":{"1":"Dashboard with site totals, quick actions, one-click templates and recent activity.","2":"Choosing which users to export.","3":"Field picker with automatically detected custom fields and the column order strip.","4":"Importing users \u2014 automatic column matching.","5":"Template cards with Export now, Edit, Duplicate and Delete.","6":"History of exports and imports.","7":"Built-in documentation with video guide."}},"plugin_section":[],"plugin_tags":[567,2010,28272,28271,286753],"plugin_category":[],"plugin_contributors":[286754],"plugin_business_model":[],"class_list":["post-386473","plugin","type-plugin","status-publish","hentry","plugin_tags-csv","plugin_tags-custom-fields","plugin_tags-export-users","plugin_tags-import-users","plugin_tags-user-migration","plugin_contributors-farhansadik01","plugin_committers-farhansadik01"],"banners":{"banner":"https:\/\/ps.w.org\/userferry\/assets\/banner-772x250.png?rev=3746398","banner_2x":"https:\/\/ps.w.org\/userferry\/assets\/banner-1544x500.png?rev=3746398","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/userferry\/assets\/icon-128x128.gif?rev=3746398","icon_2x":"https:\/\/ps.w.org\/userferry\/assets\/icon-256x256.gif?rev=3746398","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/userferry\/assets\/screenshot-1.png?rev=3746398","caption":"Dashboard with site totals, quick actions, one-click templates and recent activity."},{"src":"https:\/\/ps.w.org\/userferry\/assets\/screenshot-2.png?rev=3746398","caption":"Choosing which users to export."},{"src":"https:\/\/ps.w.org\/userferry\/assets\/screenshot-3.png?rev=3746398","caption":"Field picker with automatically detected custom fields and the column order strip."},{"src":"https:\/\/ps.w.org\/userferry\/assets\/screenshot-4.png?rev=3746398","caption":"Importing users \u2014 automatic column matching."},{"src":"https:\/\/ps.w.org\/userferry\/assets\/screenshot-5.png?rev=3746398","caption":"Template cards with Export now, Edit, Duplicate and Delete."},{"src":"https:\/\/ps.w.org\/userferry\/assets\/screenshot-6.png?rev=3746398","caption":"History of exports and imports."},{"src":"https:\/\/ps.w.org\/userferry\/assets\/screenshot-7.png?rev=3746398","caption":"Built-in documentation with video guide."}],"raw_content":"<!--section=description-->\n<p>UserFerry gives you full control over exporting \u2014 and importing \u2014 the people registered on your WordPress site, including the custom profile fields added by other plugins.<\/p>\n\n<p>[youtube https:\/\/youtu.be\/TNJCre6AAvk]<\/p>\n\n<p>Everything lives under <strong>UserFerry<\/strong> in your wp-admin menu, in a full-width dashboard with a sidebar for Dashboard, Export users, Import users, Templates, History, Settings and Documentation.<\/p>\n\n<h4>Choose who to export<\/h4>\n\n<ul>\n<li><strong>All users, by role, by registration date or hand-picked<\/strong> \u2014 select individual users from a searchable, paged list.<\/li>\n<li><strong>Search and sort<\/strong> \u2014 narrow any selection with a search term and choose the sort order.<\/li>\n<li><strong>Live counter<\/strong> \u2014 see how many users match before you export.<\/li>\n<\/ul>\n\n<h4>Choose exactly which fields become columns<\/h4>\n\n<ul>\n<li><strong>WordPress profile fields<\/strong> \u2014 ID, username, email, first and last name, display name, nickname, role, website, registered date, biographical info and more.<\/li>\n<li><strong>Custom fields detected automatically<\/strong> \u2014 ACF, Ultimate Member, WooCommerce billing and shipping, BuddyPress, Meta Box, JetEngine, registration form plugins and your own code. A <strong>Scan custom fields<\/strong> button refreshes the list at any time.<\/li>\n<li><strong>Every field listed once<\/strong> \u2014 hidden reference keys (such as ACF's <code>_field<\/code> copies) are filtered out, and admin preferences are tucked into a collapsible \"Hidden &amp; plugin data\" group.<\/li>\n<li><strong>Column order<\/strong> \u2014 drag columns into the order you want.<\/li>\n<\/ul>\n\n<h4>Four export formats<\/h4>\n\n<ul>\n<li><strong>CSV<\/strong> \u2014 configurable separator and UTF-8 marker for Excel.<\/li>\n<li><strong>Excel (XLSX)<\/strong> \u2014 a styled, frozen header row and filter buttons, with no external libraries needed.<\/li>\n<li><strong>JSON<\/strong> \u2014 for developers and APIs.<\/li>\n<li><strong>XML<\/strong> \u2014 for reporting systems.<\/li>\n<\/ul>\n\n<h4>Import users<\/h4>\n\n<ul>\n<li><strong>Import the files you export<\/strong> \u2014 any CSV, Excel, JSON or XML file exported by the plugin can be imported again unchanged, so you can move users between sites or edit them in Excel and import the changes back.<\/li>\n<li><strong>Files from other tools work too<\/strong> \u2014 comma, semicolon and tab separated CSV files are detected automatically.<\/li>\n<li><strong>Automatic column matching<\/strong> \u2014 columns are matched to fields by name, meta key or common words; change anything, skip columns or save a column as a new custom field.<\/li>\n<li><strong>Create or update<\/strong> \u2014 find existing users by email, username or ID, then update or skip them; create new users with a default role.<\/li>\n<li><strong>Safe by design<\/strong> \u2014 you can only assign roles you are allowed to assign, your own role is never changed, users are not emailed about bulk changes, and every failed row is reported with its row number and reason.<\/li>\n<li><strong>Memory-safe<\/strong> \u2014 Excel worksheets are streamed row by row, and row, column, cell and file-size limits protect your server from oversized or crafted files.<\/li>\n<\/ul>\n\n<h4>Templates<\/h4>\n\n<ul>\n<li><strong>Save any export as a template<\/strong> \u2014 for example \"Subscribers \u2014 username, email, last name and education\".<\/li>\n<li><strong>One click<\/strong> \u2014 run it again with Export now, or open it in the wizard with every field pre-selected.<\/li>\n<li><strong>Manage<\/strong> \u2014 create, edit, duplicate and delete templates from the Templates screen.<\/li>\n<\/ul>\n\n<h4>Built for big sites<\/h4>\n\n<ul>\n<li><strong>Batched exports and imports<\/strong> \u2014 work in small batches with a progress bar, so sites with hundreds of thousands of users finish without timeouts.<\/li>\n<\/ul>\n\n<h4>History and safety<\/h4>\n\n<ul>\n<li><strong>History<\/strong> \u2014 every export and import is listed with who ran it; export files can be downloaded again.<\/li>\n<li><strong>Automatic cleanup<\/strong> \u2014 old files are deleted after a number of days you choose.<\/li>\n<li><strong>Protected files<\/strong> \u2014 exports are stored in a randomly named, protected folder (or outside the web root) and served only to authorised users through WordPress. A built-in check, also shown in Site Health, warns you if your server (for example Nginx) exposes the folder and gives the rule to fix it.<\/li>\n<li><strong>No third-party requests by default<\/strong> \u2014 no Gravatar or other external resources are loaded. The only exception is the optional video guide, which loads from YouTube (privacy-enhanced mode) only after you press play.<\/li>\n<li><strong>Formula protection<\/strong> \u2014 spreadsheet formula injection protection is on by default.<\/li>\n<li><strong>Built-in documentation<\/strong> \u2014 a complete guide inside wp-admin.<\/li>\n<li><strong>Video guide<\/strong> \u2014 a short walkthrough video at the top of the Documentation screen, loaded from YouTube only when you press play.<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>userferry<\/code> folder to <code>\/wp-content\/plugins\/<\/code>, or install the plugin through the Plugins screen in WordPress.<\/li>\n<li>Activate the plugin through the 'Plugins' menu in WordPress.<\/li>\n<li>Go to <strong>UserFerry &gt; Export users<\/strong> to export, or <strong>UserFerry &gt; Import users<\/strong> to import.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"can%20i%20export%20users%27%20passwords%3F\"><h3>Can I export users' passwords?<\/h3><\/dt>\n<dd><p>No plugin can export readable passwords, because WordPress only stores a one-way hash. If you are moving users to another WordPress site, an administrator can enable \"Allow exporting password hashes\" in Settings; the hash keeps working on the new site when you import the file there.<\/p><\/dd>\n<dt id=\"can%20i%20import%20a%20file%20i%20exported%20with%20this%20plugin%3F\"><h3>Can I import a file I exported with this plugin?<\/h3><\/dt>\n<dd><p>Yes. Files exported by the plugin in any format are recognised and their columns are matched automatically on the Import users screen.<\/p><\/dd>\n<dt id=\"a%20custom%20field%20i%20need%20is%20not%20listed.\"><h3>A custom field I need is not listed.<\/h3><\/dt>\n<dd><p>Custom fields are detected automatically. A meta key exists only after at least one user has a value for it \u2014 make sure one user has filled it in, then click \"Scan custom fields\". Keys that start with an underscore are listed in the \"Hidden &amp; plugin data\" group.<\/p><\/dd>\n<dt id=\"who%20can%20export%20and%20import%20users%3F\"><h3>Who can export and import users?<\/h3><\/dt>\n<dd><p>Exporting needs the <code>list_users<\/code> capability (administrators by default). Importing needs <code>create_users<\/code> and <code>edit_users<\/code>. Settings and deleting history require <code>manage_options<\/code>. Developers can change the export capability with the <code>userferry_capability<\/code> filter.<\/p><\/dd>\n<dt id=\"where%20are%20export%20files%20stored%3F\"><h3>Where are export files stored?<\/h3><\/dt>\n<dd><p>In a folder inside <code>wp-content\/uploads\/<\/code> whose name ends in a random 24-character code (for example <code>userferry-exports-k3x9\u2026<\/code>), with file names that also contain a random 24-character code. Apache, LiteSpeed and IIS block the folder automatically. Nginx ignores those rules, so the plugin tests the folder with an anonymous request to your own site and shows the result under Settings &gt; File storage security and in Tools &gt; Site Health, together with the exact Nginx rule to add. The folder is only reported as protected when the server explicitly refuses access; redirects, errors and other uncertain answers are reported as \"could not be verified\".<\/p>\n\n<p>For the strongest protection, store files outside the web root by adding this to wp-config.php: <code>define( 'USERFERRY_EXPORT_DIR', '\/path\/outside\/public_html\/userferry' );<\/code><\/p><\/dd>\n<dt id=\"does%20the%20plugin%20send%20data%20anywhere%3F\"><h3>Does the plugin send data anywhere?<\/h3><\/dt>\n<dd><p>No. The plugin never contacts other websites and does not load Gravatar images (the user picker shows initials instead). The only HTTP request it makes is to your own site, to check that the export folder cannot be opened without logging in. The one exception is the video guide on the Documentation screen: it loads from YouTube (youtube-nocookie.com) only when you press its play button.<\/p><\/dd>\n<dt id=\"are%20there%20limits%20on%20import%20files%3F\"><h3>Are there limits on import files?<\/h3><\/dt>\n<dd><p>Yes, to protect your server's memory: up to 100,000 rows, 250 columns and 64 KB per cell; JSON files up to 20 MB (JSON is decoded in memory \u2014 use CSV for bigger files). Every part of an Excel file is size-checked before anything is read, so oversized or \"zip bomb\" files are rejected, and Excel text is only loaded within a safe share of your PHP memory limit. A file that breaks a limit is rejected with a clear message \u2014 data is never silently cut off. Developers can change the limits with the <code>userferry_import_limits<\/code> filter.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<li>Export users to CSV, Excel (XLSX), JSON or XML \u2014 all users, by role, by registration date or hand-picked, with search and sort.<\/li>\n<li>Custom fields detected automatically, each listed once, with a \"Scan custom fields\" button and drag-and-drop column order.<\/li>\n<li>Import users from CSV, Excel, JSON or XML \u2014 including any file exported by the plugin \u2014 with automatic column matching, create\/update\/skip options and a per-row problem report.<\/li>\n<li>Export templates: create, edit, duplicate, delete and run with one click.<\/li>\n<li>Batched exports and imports with a progress bar for large sites.<\/li>\n<li>History of exports and imports with secure downloads and automatic cleanup.<\/li>\n<li>Full-width admin interface with a left sidebar menu and built-in documentation.<\/li>\n<li>Video guide on the Documentation screen (click to load).<\/li>\n<\/ul>","raw_excerpt":"Export and import users with their custom profile fields \u2014 CSV, Excel, JSON or XML \u2014 with reusable export templates and a downloadable history.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/mg.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/386473","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mg.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/mg.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/mg.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=386473"}],"author":[{"embeddable":true,"href":"https:\/\/mg.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/farhansadik01"}],"wp:attachment":[{"href":"https:\/\/mg.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=386473"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/mg.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=386473"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/mg.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=386473"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/mg.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=386473"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/mg.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=386473"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/mg.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=386473"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}