Import from Ning: Import Ning users to Wordpress and BuddyPress

Import From Ning imports the contents of your Ning Network Archive into BuddyPress.

See the initial announcement here.

Download the most recent version


  • Install in your plugins folder and activate. I recommend using the plugin on a fresh WP/BP installation; if running on an installation with existing content, please make a database backup first.
  • Download your Ning network export, using the Archiver tool as described here:
  • Upload the content of your unzipped Ning export (a group of .json files, as well as several directories) to wp-content/ning-files. If this is the first time you’ve used this plugin, you’ll have to create the directory ning-files first.
  • Visit the plugin panel at Dashboard > BuddyPress > Import From Ning and follow the instructions

Frequently Asked Questions

What if I’m not running BuddyPress?
Version 2.0 of Import From Ning does not support WordPress standalone. Use version 1.1:
What content will Import From Ning import?
Import From Ning currently imports the following items from a Ning export: members, member profiles, member avatars, members comments (the “wall”), groups, discussions, and blogs. The plugin attempts to recognize inline images and copy them to the BuddyPress installation, so that you don’t lose the images you’ve put in your blog posts.
What about my images, movies, and music?
BuddyPress by itself does not currently support photo, movie, or music galleries. The best plugin available for images right now is BuddyPress Album+ , which is in the process of being adapted to support video and audio galleries as well. In the future, I hope to expand this plugin to import content for display with Album+, but in the meantime you can import your multimedia content manually.
What do I do if I have a gargantuan network?
The plugin is most reliable when working with relatively small sets of data, though I have tested it with a network import of over 1300 users. There are various safeguards built into Import From Ning, so that if a particular step fails to complete because your hosting environment runs out of memory, you can simply refresh the page to pick up from where you’ve left off.
What’s with all these new groups?
In BuddyPress, each forum must be associated with a group. In cases where your Ning discussion thread was not part of a group, Import From Ning creates a group corresponding to the discussion category and places the discussion topic there.

Be a pal

I spent many mornings building this plugin, so that WordPress and BuddyPress users – and especially my friends who are WP/BP consultants – could reap the benefits. If you use this plugin (especially for a paying client!) please consider a donation.

Import from Ning has been downloaded [downloadstat url=”” get=”total” autop=”false”] times. Are you using this plugin? Consider a donation.

Version history

2.0 – July 23, 2010
Added support for Ning network content
1.1 – April 18, 2010
Switched from copy-and-paste to direct .csv upload
Added BuddyPress profile field import functionality
1.0 – April 16, 2010
Initial release

209 thoughts on “Import from Ning: Import Ning users to Wordpress and BuddyPress

  1. Pingback: Teleogistic / More Import to Ning goodness

  2. Darfuria

    I’m getting a memory error, unfortunately. Possibly due to the amount of members I have. (~16,000)

    Fatal error: Allowed memory size of 67108864 bytes exhausted (tried to allocate 20 bytes)

  3. Boone Gorges Post author

    @Darfuria – It’s almost certainly a problem with the size of your file. For the moment (ie until I come up with a better solution), you might try breaking up the import file into smaller chunks. Open it in a text editor (NOT Excel) and copy some lines into a new file. Make sure that the new file contains the first line of the original file (I think it starts with ‘Name…’) and save it as a .csv file.

  4. Darfuria

    Ah yes. I split it into a smaller file and it did the trick. Any way of disabling the auto-email? I’m setting this up as a test and don’t want to e-mail anybody just yet.

  5. Boone Gorges Post author

    Darfuria – Are you running WPMU? If so, then the following line of code should do it:
    add_filter( 'wpmu_signup_user_notification', create_function('', '{return false;}') );
    You’d put it in import-from-ning.php, right before
    add_action( "admin_print_styles-$plugin_page", 'bp_ning_import_style' );

  6. Boone Gorges Post author

    Darfuria – Haven’t tested this, but it should work. Find the functions.php in your theme dir. (Create it if it doesn’t exist, making sure to include php delimiters <?php at the beginning and ?> at the end.) Then put the following function into it:

    function wp_new_user_notification($user_id, $plaintext_pass = '') {

    That’ll override the core function in pluggable.php. Obviously, it replaces the guts of the plugin with nothing, so no email will be sent. Run it with a test email address first to be sure. Then delete it from the functions.php file when you want to run it for real.

  7. eduardo

    I’m looking for the importing data in the oposite direction, ie into my Ning social network.
    Is it possible as well?


  8. Pingback: ဘိုင္ဘုိင္ Ning, welcome BuddyPress « Thang No's Blog

  9. ediddy999

    I have a question. If I use this and some of my members have already made new profiles on my new site will it create a conflict or overwrite anything? I was waiting to pull the trigger on this and while I was waiting some of my members moved over and have setup profiles that may be the same as their ning ones.

  10. Boone Gorges Post author

    ediddy999 – No, the plugin won’t create a new profile field if there’s already one by the same name, and it won’t overwrite the information in a profile field if it’s already populated. It might be a good idea to try a test first, though, if you can.

  11. Pingback: De Ning a BuddyPress | TodoWordPress

  12. Pingback: Ning cambia su modelo de negocio | blog

  13. andy

    As ning have announced moving to only fee $$ …and no more free networks Im sure this will be in big demand soon. They say from July.

    As I offer 2 free networks the cost of continuing at Ning would be 40-100$/month!
    No way yet of recouping any cost from advertising.

    Seems cheaper to get a virtual server and run both from there.

  14. Pingback: 国内では影が薄いNing無料プラン終了

  15. andrew

    Can you show me example of Ning site with over 200 members that have successfully migrate from Ning to Buddypress?



  16. Boone Gorges Post author

    andrew – I don’t know of any myself, but you might poke around the support forums to find someone who has done the transfer.

  17. Kim

    This looks like a brilliant solution! I’m wondering if the import will also bring over other data the members have uploaded to our community, like blog posts, videos, photo albums? Also importantly, will it import group and forum activity?

  18. Pingback: Setup a new Wordpress installation as a subdomain with Buddypress « Moving at the Speed of Creativity

  19. Kalman

    Can I use your plug-in to import a csv not from Ning? I have a list of students from a university that I want to upload to by WP 2.9.2 and BP (latest version).

    All the plug-ins I have looked into are for BP on WPMU or WP where you cannot import Xprofile data.

    Do you have a sample Ning export file for me to view (or at least the header/first row) so I can try and adjust my csv to work with your plug-in?



  20. Boone Gorges Post author

    Kim – Unfortunately, until Ning offers a content export option, there’s no way to make this tool import stuff like forums. Hopefully soon!

    Kalman – Sure, this should be possible. All the plugin requires to run is that the first row in the CSV contain a column header called ‘Name’ and a column header called ‘Email’. All other column headers are sniffed out. As long as the first row of your CSV is like this, it should work. (Don’t have a shareable Ning CSV handy right now so I can’t send to you – but I’m guessing you’ll be able to make it work fairly easily)

  21. QQQ

    Boone Gorges – there is a post here about what I need to do (latest long post on the list):

    I think this Ning plugin is great and I would be happy to make a $100 donation (or a little more if necessary) if you could tweak it to meet the needs of what I outlined there and then maintain it for a while through the upcoming WP 3.+. Trouble is, I need it very soon…. if you can do it, please email me off-site (you got my email!).

    This is for a non-profit in NYC that maybe you can also help with (paid) in the future too — I am not in NY, so I want to help them find a helper, of sorts, for the future who is also based there. I can explain more via email. I know you are a very busy guy. My donation to them is making a buddypress site for their membership.


  22. Kalman

    @Boone – I can confirm that creating a CSV, with Name and e-mail as the first two columns (in the first row) and then you other profile fields, will import correctly into BuddyPress.

    My next question, which I do not think is related to your plugin, is how do I change the e-mail sent out to users after importing the data?

    Any help would be appreciated.


  23. ccarini

    I have set up the ning members plugin and tested it. Works great for the general personal info to come over. Is there a way to bring over photos, videos, groups etc.?

  24. Boone Gorges Post author

    ccarini – Not yet, but I believe that Ning is releasing a full-content exporter quite soon. At that point I’ll try to find the time to build a content importer.

  25. Tony Zeoli


    I’ve found that you can export much of your content as JSON files with accompanying folders. Are you going to be creating some type of importer for BuddyPress to work with these file types and folders?

  26. Jan

    Hi, how can I change the link in the e-mail message that will be sent to the users after importing the users data?
    thanks in advance!

  27. Boone Gorges Post author

    Hi Jan – I’m about to come out with a totally rewritten version of the plugin that allows full email customization. Stay tuned – I should have a release version in the next day or two.

  28. Darfuria

    Have the new Ning pricing plans opened up any potential for further developing this?

  29. Pingback: Teleogistic / Import From Ning now imports Ning content into BuddyPress

  30. Pingback: De Ning a BuddyPress | PHP SPain Blog

  31. BuddyPress Media

    Hi Boone!

    I just saw your announcement for the new version of the Ning importer plugin, and I’d like to work with you to make sure it works seamlessly with BuddyPress Media.

    We’re just about to start updating all of our new hooks and filters to the plugin, so if there’s anything you need, just post what you’d like added in the issue tracker entry.

    Also, if there are any specific content importer functions you’d like us to write and add, we’ll certainly do our best to accommodate you.



    1. Boone Gorges Post author

      Awesome, F! (Not sure which of the Fs I’m speaking to 😉 ) I’m planning on looking at media import in a couple of weeks, and using BP Media as the basis. If I stumble across places where I could use some more hooks or functions, I’ll let you know!

  32. Blog Hardim

    i got this error:
    Fatal error: Cannot break/continue 1 level in /…../community/wp-content/plugins/import-from-ning/bp-functions.php on line 196

    how to fix it?

  33. Brian Hanifin

    Well shit! I just sent out Emails telling several hundred about a website that is supposed to be a top secret test!

    Please add a checkbox on the first page to allow people to choose whether or not to send these messages out. I was expecting to be prompted as the first page claims I will be walked through the process.

    Now I have to tell the network creator I just scared the shit out of about 500 or so members. 🙁

  34. Brian Hanifin

    Where is the /avatars/ folder located? I would love to give it write permissions… althought i am afraid I may be too late for the import process to add users avatars now that the import process is complete.

  35. Brian Hanifin

    Ignore my above overreaction. I got scared because the “Recently Active Member Avatars” widget claimed there were a dozen or so recently active members! I guess the import process makes them “recently active”.

    After reviewing the code i now see the Emails only go out by choice at the end of the import process.

    Sorry for the overreaction, but you might understand why I was concerned.

  36. Tony Zeoli

    Hey Boone:

    Should I deactivate all other plug-ins (other than BuddyPress itself) before running the Ning Importer?

    We’re getting an error. Allocated 30 MB, tried to allocate over 40.

    We’re still getting an error. We put a php.ini file in wp-content and in the importer folder.

    Any ideas why we are seeing the memory error?

  37. Tony Zeoli

    One more thing…it’s on 1and1. We change the mem limit to 128 in the ini file.

    This install of BuddyPress is actually in a folder inside another install of WordPress. We’re using the BuddyPress as a testbed. Could it be that the WP 3.0 version one directory outside of the BuddyPress directory is affecting the memory limit?

  38. Tony Zeoli

    I figured it out. You have to make sure all your plugins are disabled and run only the importer. Of course, keep Buddypress enabled. Following the instructions. Getting warnings on every import of comments…seems the data is missing something the importer is calling for on each round. Times out and I refresh and it keeps chugging along. I’m just going to go through the entire process, even with the warnings, and see what happens.

  39. Tony Zeoli

    Everything worked, up to this point:

    Discussion groups

    Import from Ning is now importing your Ning groups. If you’ve got a lot of groups, you might have to refresh the page in order to get them all. If so, you will see a message near the bottom of the screen.

    Once you’ve finished importing groups, click Continue at the bottom of the page to move on to the next step.

    Fatal error: Out of memory (allocated 23592960) (tried to allocate 15081729 bytes) in /homepages/31/d176735165/htdocs/c2/canary2/wp-content/plugins/import-from-ning/bp-functions.php on line 92

  40. Pingback: Ning to BuddyPress Importer - Digital Strategy Works - PHP | Digital Strategy Works

  41. Willem

    When I start the importer I get this error:
    Fatal error: Call to undefined function bp_ning_import_profile_two_markup() in /htdocs/wp-content/plugins/import-from-ning/bp-functions.php on line 42

    Any suggestions how to solve this?

    regards, Willem

    1. Boone Gorges Post author

      Make sure that your Ning files are located in the wp-content/plugins/import-from-ning/json directory. You see that message either when the plugin can’t find wp-content/plugins/import-from-ning/json/members-local.json, or when the members-local.json file is corrupt and can’t be opened.

  42. Brian Rice

    Great plugin, worked like a charm. I used it in conjunction with email user plugin to customize the password email.

    My list was 250 accounts. I added my email 1/2 through the import and at the end. The middle came through but the last one didn’t.

    This isn’t really a plugin question but is there a way to tell what emails where sent? and re-send the passwords that didn’t get sent? or should I just contact my hosting?

    I would recommend a throttle in a new version for shared hosting folks – Thanks very much for all the hard work.

  43. Anthony Zeoli


    Do you have specific experience with the problems with shared hosting? I’m having a terrible time trying to get “Discussions” in. My file size is about 14MB and I’m getting an error. Any ideas as to what to do? We split the JSON file, but that didn’t do anything for us either.

  44. Brian Rice


    I am not sure what caused the error. I think it was a relay restriction on the hosting side of things not an error with plugin. It is for a client and I don’t have experience with their host.

  45. Boone Gorges Post author

    Tony – sounds like your discussions file is still too big. 14MB is pretty huge, unless you’re running a machine with gigs of ram. Try splitting it up even further and running it through again.

  46. Anthony Zeoli

    @BrianRice, @BooneGorges – Okay, we basically removed the original JSON file and only put three discussion entries in it, but the Discussion Groups media folder has a ton of related images. Once we did that, we got another error, which I don’t have copied down at the moment. I think once we parsed the Discussion Group JSON file and resaved it with only 3 entries in it, it went way down to 700KB, but then we got a members error. I think that was it, but I have to check with my developer. We’re going to move the entire thing to MediaTemple on their GS platform, which gives 100MB of RAM off the bat. 1and1 only gives 30MB, even though you can reset it to 256 and increase the max execution limit to 60 using php.ini. I feel like there’s gotta be some larger issue.

    1. Boone Gorges Post author

      Strange that you would have gotten a member error. I’m pretty sure that the plugin is smart enough to remember that you’ve already added all those members, and it should be able to match up discussions with members.

      As for any larger problem, I’m afraid the problem may just be very large files and relatively small PHP memory limits. When you take a 14MB file and load it into a PHP object or array, it gets considerably larger (since it’s then structured, so carries additional metadata). So an object that takes up, say, 20-25MB of resident memory on a system with only 30MB allotted to PHP simply won’t leave enough memory for WP and BP to run.

  47. andy duggan


    version 1 imported everyone but only emails and names.
    i tried version 2.03? latest anyway, and it stopped part way through

    Catchable fatal error: Object of class WP_Error could not be converted to string in /home1/tokyosoc/public_html/wp-content/plugins/import-from-ning/bp-functions.php on line 188

    no profile data but emails, name, profile photos for about 70% of users. total users being about 550.

    i cant keep running more imports – users not too happy.

    another point worth considering is the admin email notification.
    most shared hosts will not allow over 500 emails per hour and they are dropped without notification. the import also produces admin notifications – the same number of emails for every user – lots of emails!
    there is no pause of option to import a certain number.

    1. Boone Gorges Post author

      andy – Sorry you’re having problems. The “line 188” error problem suggests that the import function failed for a particular user. It’s possible that the user in question didn’t have an email address or a username in the original data. Try running the import again to see if you get the same error.

      Emails to users aren’t sent out until the very end of the process, when you manually click the “send email” button. (That’s different from the first version of the plugin, a change I made because of requests like yours.) So I’m not sure what you mean when you say “users not too happy”.

      I know that there are problems with email throttling, but the extra amount of coding needed to set up a pseudo-cron for staggering emails was significant enough that I didn’t do it for this version. It’s possible that I’ll set it up in the next version of the plugin.

  48. andy duggan

    Ran version 2.03 again but stopped immediately with the same error.
    I also had trouble with the importer picking up other profile field entries and placing them in the initial user list for import. on the 2nd page it of course rejected them as the format was incorrect. maybe the field name characters like () cause trouble … not sure.

    I had the emailing problem because I reverted to version 1 which got all the users in, but without extra details. I only saw the v2 email option after just running it now on anouther group – successfully (250 users).

    One thing worth mentioning maybe!
    The importer changes all the profile fields to text boxes when they were originally checkboxes, radio buttons etc.

    Leving it this way, if users input spelling mistakes etc the search results will not be reliable.
    I havent seen the effect yet of editing the user fields back to radio buttons or checkboxes – to see how they are displayed or dealt with when previous data imported was converted to text box.
    If its a problem then I have to delete all those fields and ask users to redo their profiles.
    Simple text box or lager text fields will be ok.

  49. Boone Gorges Post author

    andy – Glad that the import worked for your other group. That almost certainly means that there is a piece of malformed data in the Ning export. In the next version I will set up a filter to make sure that this kind of malformed data doesn’t stop the rest of the process from running. In the meantime, you could try locating the problem yourself by looking to see the last member successfully created, then finding the next member in ning-members-local.json, and seeing if you can remove it or fix the missing profile data that is causing a problem.

    As for the text boxes vs radio buttons etc: From the Ning profile data, there is no way for me to tell what kind of select box the original was. In the future I would like to make it possible for the admin to specify, during the import process, what format each field should have. But that’ll take a significant amount of refactoring, so it probably won’t be for a while.

  50. Tony Zeoli

    Okay…started running the plugin, got everything in up to discussions, then got a few discussions in, then this: Warning: mysql_get_server_info(): supplied argument is not a valid MySQL-Link resource in /nfs/c07/h01/mnt/102475/domains/ on line 1582

  51. Tony Zeoli

    See this buddypress post about MySql error:

    I checked the MediaTemple Knowledge Base. Tried running the script via CGI, but that didn’t work. Put the htaccess file in the plugin directory and that didn’t work.

    Here is the Knowledge Base article:

    For complex security reasons, (mt) Media Temple’s various hosting solutions operate PHP in what is known as “safe mode”. This is necessary for the safe running of PHP enabled web sites in a shared server environment.

    * On (dv) Dedicated Virtual Server systems Safe Mode is turned on by default but can be turned off on a server wide or on a per site basis, please see the Knowledge Base article ” How do I Turn off php safe_mode on an (dv) Dedicated Virtual server”
    * On (gs) Grid-Service systems this is turned off by default so you should not have ‘Safe Mode’ issues.
    * On (ss) Shared-Server systems this is a global setting but can be configured or turned off on an individual site basis through PHP “Power Mode” Please see our article PHP Power Mode.

    Safe mode imposes several limitations that might be causing your scripts to not function as anticipated. Please review the “technical requirements” of your PHP program. If the requirements indicate that scripts must not be running on a safe mode server you should look into the work-around listed near the end of this document.

    Some of the major limitations of safe mode are:

    * File uploads: since the webserver runs as the ‘apache user’, all files that are uploaded by PHP are owned by apache. This may cause “ownership problems” for many users. In order to use this function, you must create a separate directory inside of your content directory to upload these files into. This directory MUST have the permissions of 777. Also, the manipulation of these files are very limited because of the restrictions below. However, you can delete uploaded files using the “unlink” function.
    * File modifications: moving, copying and changing ownership/permissions of files can only be done when they are owned by the administrative user.
    * System commands: PHP scripts cannot use the exec( ) and system ( ) functions, therefore shell commands are not allowed to be run from within a php script.

    Please note that many “ready-made” PHP scripts, such as Gallery or ***NUKE, use the system () function to copy files. If your script does not work as anticipated it is likely that it uses an unsupported safe mode command and may not work with the (ss) Shared-Server service. Additional information about the safe mode security feature can be found at the PHP official website:

    Customers requiring a hosting solution without the restrictions of PHP safe mode should consider (mt) Media Temple’s other family of hosting products such as the (as) Appliance-Server, or (ds) Dedicated-Server.


    One known workaround on the (ss) Shared-Server systems is to use an .htaccess file to force your php scripts to run in “CGI Mode” This is only a workaround and as such may not work in every case. If you need to bypass safe mode restrictions because the functionality you are seeking is not allowed with Safe Mode enabled, one available vehicle we offer is to write that component of your system as a CGI. This is allowed because CGI scripts are executed in a much safer context than php.

    Another alternative, which consists of running php *as* a cgi while processing certain php scripts. This runs php with safe mode off, but as a separate process and as your user. Your php scripts will take a small performance hit when running in cgi mode compared to running in the ‘normal’ way, so we only suggest using this method on the scripts that need non-safe mode access.

    1. Create a directory in which you’ll place your php scripts that you want to have run in CGI mode. For this example, we’ll use ‘phpcgi’
    2. In that directory, create a .htaccess file (KB article: What is an .htaccess file) with the following contents:

    Action php-script /interpreters/php-script
    AddHandler php-script .php AddHandler php-script .php3

    Any php scripts that you place in that directory will now be executed by cgi-mode php.


    This method may not work correctly with alternate domains.

    Once again if your site requires that safe mode be disabled and this recommended workaround does not solve the related issues, you should consider (mt) Media Temple’s more advanced family of hosting solutions such as (dv) Dedicated Virtual servers or (ds) Dedicated-Servers.

    The workaround method listed in this document may not work correctly with all scripts or with alternate domains. In that case the most viable options include:

    * Rewriting the script as CGI which doesn’t have safe mode restrictions OR
    * Upgrading to (mt) Media Temple’s more advanced family of hosting solutions such as (dv) Dedicated Virtual servers or (ds) Dedicated-Servers where safe mode can be disabled

  52. Tony Zeoli

    Okay…good news. Splitting the JSON file down to 2 MB worked. Now, we’re going to have to spit it down even further. I’m under the impression you have to keep the same file naming convention, which means you have to remove content, save a bit down, overwrite the file and just run it again. There’s gotta be a better way to do this, like somehow parsing the JSON file and only taking a little at a time. Anyway to set the importer so that if it sees a big file, it can manage that file efficiently, instead of crapping out and having to do everything manually?

  53. Tony Zeoli

    BOONE! You’re killing me with overwriting the JSON file on an updgrade!!!!

    That’s twice all my content has been deleted!

    Yes…I know…I should have a backup somewhere else on the server. How was I to know.

    (huge SIGH)

  54. Tony Zeoli

    Okay…i can see that you’ve changed the path to content. Instead of putting the content in the plugin JSON folder…it’s now in wp-content/ning-content. Is that correct?

  55. Alex Rollin

    The plugin is telling me I have no files in the directory but they are there. The permissions are 777.

    Has anyone else conquered this issue? Any advice?

  56. Tony Zeoli

    Boone has moved the path to the files, because every new release was overwriting the JSON files directory. They should be moved outside of the plugins folder–I believe he set it to “uploads/ning-files” but I’m not logged into or have access to my FTP to view exactly. Check this thread or one of the other threads for the appropriate path. It may be in the Read Me file.

  57. Alex Rollin

    It turns out that the Ning file was missing a few characters. These characters were part of the markup for the ning-members-local.json and the plugin couldn’t parse the file. It then said that the file wasn’t there. Once the error was found (thanks Boone) it ate the file happily.

    I am now having another issue, though.

    Missing comments. These comments are missing from discussion posts that were imported as blogs. I am thinking I may need to do another pass?

  58. Alex Rollin

    Duplicate id’s between Ning JSON blogposts and forumtopics.



    So, I fancy loading blog posts and discussions as blog posts separately would fix this. That is to say, anyone else who was doing this would still need to do this into a fresh DB so that bp-importer wouldn't move your comments around between the discussions and blog posts with the same id.

  59. Alex Rollin

    I decided to focus on the blogs to start with.

    My goal was to check for errors, and to make sure that all the comments were transferred.

    After the first run of Import-to-Ning 1 comment, the most recent comment, for each blog post was transferred.

    I ran it again, and more comments were added. Most of the correct comments now appear, but there are additional comments that should not be there.

    I have checked the JSON file and confirmed that these comments are no listed in the JSON file.

    I can find no relationship between the BlogPost IDs, or the Comment IDs that would lead me to believe they were “simply” missplaced by a poor association.

    The user IDs for the posters look fine, too.

    Boone, do you have any ideas about this? What I could do next?

    Again, I emptied the discussion JSON files, and put up all the rest of the files. Empty WP DB, fresh site. I went through the plugin, and the above is what I got.

  60. Boone Gorges Post author

    If it’s only loading one comment per post per run, then it’s a bug. A brief look at the code isn’t making it obvious what’s happening – it looks like it should do a foreach over every blog comment.

    As for comments missing for other reasons, I’m not sure. When you say “I have checked the JSON file and confirmed that these comments are no listed in the JSON file.”, do you mean that they ARE listed or ARE NOT listed?

  61. Alex Rollin

    Hi Boone,

    I had this problem importing discussion items as blog posts. I found that I had to run the tool for as many times as the max # of comments for a post. Max comments on any posts was 45, so I ran the tool 45 timed and picked up 45 comments. It picked up the right comments, and only miss-placed a few of them, which I was happy with after 2 days of fussing with it.

  62. Boone Gorges Post author

    Interesting – that must be a symptom of some different formatting in discussions than in blog posts. It could be, for instance, that blog comments are expected to be non-linear, while discussion posts are linear with respect to time.

    Glad you were at least able to get the majority of the content over. Let me know how the export/import to Drupal goes for you.

  63. Anthony Zeoli

    Hey Boone:

    Just an FYI, so you are aware. The Ning export pulls ALL users regardless of status, and puts them into your BuddyPress user database. That means flagged users or users who have been asked to be removed. They still exist in the Ning database. There is no documentation that says any flagged or removed Ning user would be pulled into the new system. It’s made my client quite upset, but there’s nothing anyone can do, because it’s Ning’s data. Anyone reading this post, make sure you go through your user database and pull anyone in their that requested privacy or was flagged. Also, make sure to “no-follow” your site, so that Google doesn’t cache your live profile pages in your test environment.

  64. Anthony Zeoli

    P.S. – Just to clarify, I meant to say it’s not your issue, Boone. You’re not responsible for what Ning puts out, and can only respond to requests based on our feedback. Hope you didn’t take that the wrong way. Wasn’t meant to point at you, meant to say Ning just dumps it all out there and we have to pick up the nasty little pieces.

  65. Alex Rollin

    It seems to me that the replies in Ning are allowed to be made to any comment or the post itself. Regardless, once inside WP everything appears flat, and so it is once they end up in Drupal. Running the tool multiple times was easiest with the back button. I should add that I edited the discussions file by inserting the blog publishing info into the post information, then renamed the file to “blogs” for the import. If I didn’t do that, and used the hacked version of bp-import I was getting unbelievable amounts of lost and missplaced comments.

    You can see an example of the final Drupal import on this page:

    I think there was a hiccup with something about the usernames, too, for commenters, because the names are a little off from the account names, and not lit with links as they should be. The data is in, though, and the accounts are functional.

  66. Boone Gorges Post author

    Thanks for the comment, Tony. I wasn’t aware that Ning had a concept of “suspended” users, much less that they put it into their export files 🙂

    In the future, adding these lines
    if ( $member->state != "active" )

    immediately after
    foreach ( $members as $member_key => $member {
    around line 268 should make the importer skip any non-active members. There may be a more fine-grained solution (creating non-active WP members corresponding to non-active Ning members) but that’ll have to wait for the next version.

  67. Leonardo Assis

    I have this error:

    Warning: mysql_get_server_info(): supplied argument is not a valid MySQL-Link resource in /home/minhascitac/public_html/embuscadabibliotecaperdida/wp-includes/wp-db.php on line 1582

    How to resolve?


  68. Boone Gorges Post author

    Leonardo – It doesn’t sound like this is an error with my plugin. Is WordPress/BuddyPress working for you otherwise? Can you save new content?

  69. Leonardo Assis

    This error appears when I import the forums. It starts to upload but always this error message appears. With that I am not able to migrate all messages. I do not know how to fix this problem that seems to be of WordPress and MySQL.

  70. Boone Gorges Post author

    That’s a very peculiar error, Leonardo. I opened the WordPress file in question, and it looks like WordPress is unable to open a database connection at that moment. I have no idea why that would be the case. Try posting to the forums from the front end of BuddyPress and see if you get the same error.

  71. Alex Rollin

    Boone et al,

    I wrote a detailed post on how to use the Ning Imported to migrate the posts to Drupal. I had some good success with it. I hope others in need will find it useful.

    You can see the imported content at

    Thanks for the help with this, Boone. There are a couple bugs, but I can endure them as 98% of the comments ended up in the right place.

  72. Sammy Jackets

    Hi ,

    I tyested the pug lin and it worked really well, i successfully imported blogs, comments, users, music , mictures etc … but i have a question

    Is it possible to import several different Ning sites on the same WordPress 3 account ?

    I fear that when i uplaod the files from my second ning account it will overwrite the archives from the one already imported .

    Thanks and congratualtions u did an amazing job with that plug in

  73. Boone Gorges Post author

    Hi Sammy,

    So glad it worked well for you!

    If you go through the import process again with a different set of files, nothing will be overwritten. When the plugin adds new users and new content, it simply tacks it onto the “end” of the database, so to speak. Everything should be correctly associated with the proper user. Keep in mind, though, that if you import into the same WordPress installation, all of the discussion topics and user profiles will be mixed together: they will no longer be separate communities.

  74. Arx Poetica

    Boone — fabulous plugin. I’d never had need to use it before, but, well, now’s the time.

    However, I seem to have run into a hitch. I have around, oh, 300-500 members to import for a friend’s website, but the members json file is stopping after only so many, and not doing the full import. My inclination is to think it’s out of memory because when I try to start over and do it again, it loads the exact same members.

    Any clues? I’m hoping the NING export file isn’t corrupt, which would be a shame, because I have no idea how to fix that. Looking closely at the details of the json file, however, I can’t see any obvious problems. (Looking at where it’s stopping.) Any ideas?


  75. Boone Gorges Post author

    Arx Poetica – What happens when it “stops”? Do you see the footer of the WordPress Dashboard, or does the entire page stop loading at that point? As I suggest in the documentation, for large amounts of data you might need to hit the Refresh button when the plugin stops.

  76. Arx Poetica

    Yes, I see the footer, and I did read the documentation a few times. Tried refreshing, but it just doubles up the content. The strange thing is that it’s importing everything else just dandy. Groups, discussion, etc.

    Unfortunately, after carefully reviewing my data, it appears that it’s actually the data itself. It appears that the archiver from Ning isn’t exporting all the content. I don’t get it, and I can’t be sure until really digging in there, but that’s the appearance.

    I was able to download the .csv export from Ning, and that had all the members, but it’s missing the other data, so I’m just trying to figure out if it would be worth trying to reformat that .csv into some importable json.

    Any further tips along this front would be appreciated. Any suggestions for how to import a .csv? I saw that it could be done with version 1.1, but I’m not certain how to do that now without converting it into a json string?

    Thanks again.

  77. Anthony Zeoli

    The Ning exporter can deliver corrupt content in the discussions-local, which is the file that the importer calls. The data in this file comes “relative” and not absolute. The sister file is the non-local file, which may be okay. You can rename the sister file as the local file, but then you’ll have to do a search and replace in mysql to fix all your links to either relative or the absolute path of your URL.

    I have had this issue myself…it’s the worst, because you have no idea what’s going on.

  78. Alex Rollin

    There can be a lot of reasons for corrupt files.

    I had to get a new set from Ning because the first set was full of errors and missing data. I recommend trying that first.

    The importer is not really designed for importing the CSV file. It will retrieve your member information from the JSON files. The CSV file has no real value beyond that information.

  79. Boone Gorges Post author

    Just to concur with Alex and Tony: The JSON files that come from the Ning export can be buggy. The crappy part about it is that sometimes it’s a single character in a multiple-megabyte file, which makes it very, very hard to trace. Tony’s suggestion that you try the non-“local” version is a good one; even though you’ll get a lot of absolute links, it could be better than nothing.

    The .csv importer in earlier versions of this plugin will import your members, but none of your data. I don’t really recommend using it.

    1. Robert DeBenedictis

      I found this online JSON parser to be a big help in finding the JSON syntax errors.

      I found four recurring syntax errors:
      1. leading and trailing parentheses in json files
      2. “}{” => “},{”
      3. “}]{“=> “},{”
      4. string values like “uXXXuXXX” need to be replaced with placeholder text

  80. Mark Simonds

    The new user email isn’t replacing the merge fields with the username and password.

    In bp-functions.php line 1486 needs to be changed from:
    wp_mail( $to, $subject, $email_text );

    wp_mail( $to, $subject, $message );

  81. Anita

    hi Boone, I’ve spent 2 days trying to get this right…. I’ve archived the ning files, uploaded them all to a wp-content/ning-files folder. Have visited the plugin panel at Dashboard > BuddyPress > … but can’t find “Import From Ning” in order to follow the instructions. I’m using the BuddyPress version that I downloaded at the top of your page here, with WP 2.9.2

    Any help would be greatly appreciated!


  82. Pingback: links for 2010-08-26 | Ronaldo Richieri

  83. Anita

    Ha! You’re a genius, thanks for that. Now i’ve just gotta sort out photos and a few odds and ends and I’m away! Thanks so much. Expect a donation soon! xx

  84. Josh Frank

    Boone – thanks so much for this great plugin!

    One question: I can’t find documentation on how the plugin handles users’ passwords. Are they imported from Ning, too – or do random passwords get assigned on import? I notice the username and password field in the template of the notification email and am assuming new random passwords have already been generated.

    Thanks again! We are re-launching our network today on WP/BP at

    1. Boone Gorges Post author

      Josh – The plugin autogenerates a random password for each user. Seemed like a safer bet than trying to port over passwords in plaintext, etc. Users can change their passwords to something more memorable the first time they log into BP.

      Good luck with the big move!

  85. Lisa

    Catchable fatal error: Object of class WP_Error could not be converted to string in /home/cm/public_html/wp-content/plugins/import-from-ning/bp-functions.php on line 188

    I am getting stuck at this error. Any ideas? I am going to run the archiver again and see if something went wrong there. Any help is appreciated!

  86. Mark Earl

    Hey Boone. First, great tool. We’ve been trying to move from Ning and it’s turning out to be a real pain.

    When I run the Archiver tool from Ning it only exports about 102 users out of 2126. It loops the same users over and over to get the correct total of 2126.

    It looks like the archiver tool does export the blogs and images and everything else ok. And I can export the users correctly in the CSV file.

    Could I use the CSV file to import the users with version 1.1 then use your ver 2 tools to import the content?

    I know this might not be possible but I’v been waiting for Ning for over a month and the responce has been minimal. I starting to explore other options.


    1. Boone Gorges Post author

      Weird, I wonder why it would loop those same users. I would understand if it just stopped after a certain number (because of malformed data or something) but I don’t understand why (or even how) it would repeat them, given that it’s a foreach loop. Have you glanced at the Ning export data (members-local.json) to double-check that the error isn’t there? In other words, does the JSON file contain the same members repeated over and over again?

      As for importing users via CSV, it will be tricky because the user IDs will probably not line up correctly. If you were willing to change the user IDs manually (itself a hard job, as it involves a lot of database digging) or to modify the way that v1.1 of the plugin works, you might be able to make it work right. But to be honest I’m not sure how it would work off the top of my head.

  87. Buster's Mom

    I have followed the instructions to the letter and I am getting an error message when I select the Import from Ning, that file files are not in the wp-content/ning-files file folder – but they are all there. Why is this happening?

  88. Boone Gorges Post author

    Buster’s Mom – That almost certainly means that the Ning members-local.json file is corrupt or malformed somehow. This is not your fault. I’ve dealt personally with about 10-12 Ning exports, and probably half of them contained some sort of JSON errors. Unfortunately, the only way to know is to start cutting away entries from the JSON file and rerunning the importer until you are successful (using the process of elimination to find the bum entry). Entries are delimited by curly-brackets – check out the file and hopefully you’ll be able to figure it out. good luck!

  89. Buster's Mom

    That’s easy for you to say (smile)! I don’t know anything about JSON to even do what you suggested. All I can do now is to go to Ning and put in a ticket of some sort. Thanks for responding.

  90. Buster's Mom

    I got it to work! But for some reason not all of my members are there, but it’s okay. I am just testing it out. The member profile pictures didn’t come through though.

  91. IsraelWebDev

    I know it’s been asked before, but can someone upload sample files, as I’d love to use this plugin to import users, blogs, etc from a custom site, but I have no idea about the data structures. Thank you so much.

  92. Buster's Mom

    If you are customizing a site for someone, they should use the Ning Export Tool to get you the JSON files and folders. My suggestion would be to use the Members JSON files & the Members folder as your starting test point. The JSON files correspond with the different files folders, i.e., Members, Blogs, Photos, Discussions, etc. Each Ning site is custom made so therefore our structures will be a little different (varying fields of info). The data on a member page is different across the board based off the profile questions each site creates, as well as the discussions, etc. Use the Ning Export tool to upload the files. It’s actually pretty simple to do now that I know my own file was just corrupt. Keep in mind that it takes several tries to get all the data. I had 247 members on one site and the tool will only bring in 101 of them. I don’t know why but will post that question.

  93. Buster's Mom

    @IsraelWebDev, Ning is offering a free 30-day trial. You could use that to create your own test site and to use the Export Tool for yourself during your testing phase. That might work for you.

  94. IsraelWebDev

    @Buster’s Mom Thanks for the suggestion. I just had to do a search for one of the file names, “ning-members-local.json” and got a few “Index of” sites (allowing directory browsing) and downloaded the files I needed. Thanks Google!

  95. Pingback: Daniel Koskinen – Käyttäjätietojen siirto Ningistä Buddypressiin

  96. EA

    Just a huge thanks for building this plug-in and supporting it so well! I haven’t made the leap yet but I’m less anxious about it than I have been reading through… THANKS BOONE!

  97. Mark Earl

    Hey Boone. I was able to finally get a proper export. Ning finally admitted it was an error on their end causing the loop. They fixed it and the export now works.

    Anyway, when I try an import I get this fatal error:
    Maximum execution time of 30 seconds exceeded in /home/hardcore/public_html/wp-includes/functions.php on line 722

    Any ideas?

    Also, all the avatars did download but it looks like most of them are not importing. thoughts?


    1. Robert DeBenedictis

      I am using BuddyPress Version and Import From Ning Version 2.0.7.

      Everything imported nicely except for the avatars. After rooting around the code I realized that this was because BP_AVATAR_UPLOAD_PATH was not being initialized in the BuddyPress code. I addressed this by initializing it in the Import From Ning code — I added the following to the top of import-from-ning/bp-functions.php:

      if ( !defined( 'BP_AVATAR_UPLOAD_PATH' ) )
              define( 'BP_AVATAR_UPLOAD_PATH', wp_upload_dir() );

      I hope that helps.


      1. Robert DeBenedictis


        The code should be:

        define("BP_AVATAR_UPLOAD_PATH", ABSPATH . '/wp-content/uploads');

  98. Boone Gorges Post author

    Tom – Avatar copying can be a bit tricky, as it requires certain server permissions that you might not have control over (especially if you’re on shared hosting). So unfortunately I don’t really have a good suggestion for you.

    EA – Thanks, and good luck!

    Mark – It sounds like you’re trying to import a large amount of data in a situation where you have relatively limited memory. Are you using shared hosting? The avatar problem could be related – the fact that some, but not all, are coming through suggests that the copy procedure might be timing out.

  99. Mark Earl

    Hi Boone. I’ve increased the memory on the server and the timeout and the import seems to be running ok.

    But it looks like the images are not being moved. The avatars that are showing up have direct links outside the page. and the images on the blog post are linking to “site/members/membername/blogs/1-1000/jpgname” but there is not a members directory under the root? Could it be a permissions error not creating or moving the files?

  100. Mark Earl

    Would it be easier to email you a link to the images so I can show you what I am talking about?


  101. Boone Gorges Post author

    Mark – You can send a link if you want to (twitter handle at gmail).

    The image paths that you’ve cited make it seem unlikely that server permissions are the problem. It sounds like it’s probably a problem with the way that the plugin tries to handle inline images. I’m not sure how much time I have to try to fix that problem, but if I can see the actual markup I might be able to have a quick look at the plugin code.

  102. Athalas

    Hi Boone. I have successfully done two imports from ning to buddypress before but having problems with a 3rd site.

    Even though all my files are uploaded to the ning-files dir, I’m still getting a “couldn’t find a members file”. I’ve opened the file and everything in it looks similar to the ones I’ve used before. Any ideas as to what the problem might be?

  103. Athalas

    Just to add on to my previous comment, I’ve exported the members file from the ning site twice now, but it still is giving the issue.

  104. Leo Germani


    I was having issues importing members avatars. They simply would not beeing imported. Looking at the code I managed to find the problem.

    The code is looking for the avatars in the plugin folder. All I did was changed it so it now looks at the ning-files folder.

    so, here it is. in plugins/import-from-ning/bp-functions.php

    Line 193
    was: $oldfilepath = WP_PLUGIN_DIR . ‘/import-from-ning/json/’ . $f[0];

    fixed: $oldfilepath = WP_CONTENT_DIR . ‘/ning-files/’ . $f[0];



  105. Pingback: Ning To BuddyPress Importer (Free) | TotallyWP

  106. Mark

    Hi Leo. That code change fixed my avatar import issue, YAY!. I aslo made a similar code change on line 492.

    now when I try an import it gets amlost all the way through the users but gives me an error:

    Object of class WP_Error could not be converted to string in /wp-content/plugins/import-from-ning/bp-functions.php on line 212

    I have reset all permissions on folders and still same error. Thoughts? Looks like it’s trying to create a folder for users that already exist?


  107. Jason Murphy

    I keep getting this error:

    Warning: file_get_contents(/home/content/53/5492253/html/findvirtualsocialnetwork/wp-content/ning-files/ning-members-local.json) [function.file-get-contents]: failed to open stream: No such file or directory in /home/content/53/5492253/html/findvirtualsocialnetwork/wp-content/plugins/import-from-ning/bp-functions.php on line 92

  108. Tom Lyga

    I generated the username/password notification email, and all were sent with the:


    as in the template.

    Any ideas on why this would happen, and how can I resend this with the usernames and passwords included?



    PS…please expedite this, as I have a pretty upset client! : (

    1. Boone Gorges Post author

      Did you retype the content of the email yourself? I am pretty sure that the replacement strings have to be uppercase or they won’t be replaced – %USERNAME% and not %username%

  109. Boone Gorges Post author

    Tom – In that case, I can’t tell what would have gone wrong. Look at bp-functions.php bp_ning_import_sent_email_markup(). The code is very straightforward. If the str_replace() statements are failing, it might mean there is a text encoding problem or something like that. I would suggest putting some var_dump() and die() statements in there to see if $email_text is getting mangled somehow.

  110. Tom Lyga

    @boone – You lost me on that one…I’ll try to work through it. Any suggestions would be greatly appreciated.


  111. Jason Murphy

    @boone in reply to 120 – yes, I created a directory wp-content/ning-files and dropped the ning-members-local.json file in there.

    I deleted the plug-in and started from scratch.

    I am assuming that this is the first step, or, should I have installed files somewhere else prior to loading the ning-members-local.json file?

    Thanks in advance!

  112. Jon Weiner

    Anybody know how to fix this problem?

    Warning: Invalid argument supplied for foreach() in /home/mezmedia/public_html/wp-content/plugins/import-from-ning/import-from-ning.php on line 166

    Import Users from Ning
    Step Two: Create the Users
    No users successfully imported. Are you sure that your .CSV is correctly formatted? Try downloading it again from Ning, and start the import process over again with the new file. Warning: Don’t try to edit the .CSV file in MS Excel, as it’s known to cause problems

  113. Jon Weiner

    Ok, finally got the Importer to work, however I’m getting this error message, Fatal error: Out of memory (allocated 65011712) (tried to allocate 40209915 bytes), my JSON file, ning-members-local.json is 19MB, 14,000 profiles…at this point, I just want to bring in the profiles, name, email, etc. How to do I make that JSON file smaller?

    Please help.

  114. Mark

    Jon, increase the PHP memroy to 128MB. you can have your hosting provider do this or you can if you have access to your php.ini file. or you can add a line to the htaccess file like so:

    php_value memory_limit 128M

    That should help. I had to put mine to 256 and my JSON files were about 14MB.


  115. Adil

    Hi Boone

    i need your help

    it has been around a week and my web is down cause i have cancelled my ning subscription because i moved to wordpress

    Before i did that i tried wordpress using your import to ning plug and it worked and deleted it cause it was just a trial

    now when i already cancelled ning and trying to get everything ready in wordpress when i reach the step of importing i get the below error

    ”Here’s what it actually says…

    ”In order to run the importer, you must first use your FTP program to upload the contents of your Ning export into a directory called ning-files in your wp-content directory. The plugin couldn’t find a members file at wp-content/ning-files/ning-members-local.json, which probably means that you haven’t uploaded the files to the right place. Upload your unzipped export to the json directory, and try visiting this page again.”
    Plsssssssssssssssssssssssssss help me out i searched everywhere in the net i could only find the below two links

    non of them helped me

    i have been awake since last night until now it is already around 11am

    hope i get a respond from you as soon as you can


    1. Boone Gorges Post author

      Adil – Are you sure you have put the Ning files in the correct place? If so, the problem is probably that the files are invalid. The only advice I can give you in that case is to try to figure out where the invalid json is coming from, by paring away pieces of the members-local.json file until you can get the importer to recognize it.

  116. Linda

    I’m baffled at how the avator import process works, since I can’t find where WordPress is storing Avatar info. I’ve looked in the “users” table, where I’d expect them to be, and there is no field for them. I can see in the .json file that the info is there, but I have no clue where they should be imported into WordPress. I tried the suggestion above to change line 193 in the bp-functions.php file, but when I try to re-run the importer I get a message ” Object of class WP_Error could not be converted to string . . on line 188″ whether I’ve changed line 193 or not. Since it ran find the first time, I’m assuming it’s because I’m trying to re-rerun the import. I don’t have so many avatars I couldn’t add them manually if I knew where to put that data! Any suggestions much appreciated.

    1. Boone Gorges Post author

      BP avatar data is not stored anywhere in the db. They are stored in a directory tree that is keyed by user id. See /wp-content/uploads/avatars. (wp-content/blogs.dir/1/avatars on MS)

  117. Robert

    I have exported the CSV file from my ning site and would like to import that CSV file into my site. Import Users from Ning plugin and have added a file named “membersdata.csv” to the folder wp-content/plugins/import-from-ning/json. Not sure how the whole json thing works. is that a file format? or can the program simply read my CSV file in the method i used above. Please advise. I’d be happy to give you access to my website to test. Thanks! Robert

  118. Pingback: Social Networks – roll your own? | Rodeworks Tech

  119. Karen Chun

    How to import avatars after you import from ning

    The avatars are stored in your export subdirectory under “members”. Each one begins with the id of the user.

    1. Pick any user and find the id of the user in your new buddypress database. You do this by Dashboard/users/ and picking a user to edit. Look up in the URL bar and you’ll see something like user_id=204 in the url. Now find the same user on the ning site and figure out their id in ning. (I just looked at their avatar then then looked at my local folder “members” with icon view and picked out the person’s icon.

    So now you have the new id and you know the name of their old avatar file which starts with their old id number. So in my case their old avatar was called 205-blahblah.jpg. (we only care about the number and dash in its name)

    Now I know that every avatar is numbered one MORE than the new user id.

    2) Now I have to massage the avatars to be the right size for Buddypress. Buddy press wants TWO avatars. One called anything-bpfull.jpg or anything-bpfull.png or anything-bpfull.gif is 150×150 pixels. The other, called anything-bpthumb.jpg (or png or gif) is 50×50 pixels.

    Since I had about 300 avatars to resize I used Gimp (open source) Filters/Batch/Batch Process to resize and rename each file to whatever-bpthumb.png. Then I ran it again to resize and rename each file to whatever-bpfull.png.

    3) Then I created folders called 2, 3, 4….300 and moved 204-blahblah-bpfull.png and 204-blahblah-bpthumb.png into folder 203 and so on. (Because in my case each person had a different id in the new set up that was one lower then the number of their avatar. Your situation may well be different)

    4) ftp’d all the folders (2,3…) to the folder /wp-content/uploads/avatars

    That’s all!

    BTW, group avatars are stored in numbered folders (matching the group id) under /

  120. Karen Chun

    I had a problem when I did the last step and invited people. Their username and passward showed up as %USERNAME% %PASSWORD% instead of being replaced by the real values.

    Know how I can resend with the correct info?

    PS – THANK YOU!!!! Import from Ning was a LIFE SAVER!!!

  121. Karen Chun

    Someone asked for an example site that successfully used this plugin to go from ning to buddypress.

    For the next couple days you can see the original ning site at and the new buddypress site at

    After that will take you to the new site.

    I had to do some manipulation of eventpress to get it to display properly in my custom theme. But the ning import went smooth as silk (except for I had to go through a hand process for avatars – see above comment and my email to my users failed to replace the variables)

    Gotta admit it really po’d me that ning made me download a special program to archive their content…what a pain!

  122. Karen Chun

    Correction to my avatar upload instructions:


    should be


    You may have to create both avatars and group-avatars directories. I did.

  123. Karen Chun

    Hi – I’m still trying to email my users. I just downloaded the most recent version of the plugin 2.05 and I see two problems.

    1. I already imported the users and the passwords were not stored in the options table (user name, login, etc was)

    There is an error over and above that in the mailing code:

    foreach ( (array)$users[‘success’] as $user ) {
    $to = $user[‘user_email’];
    $message = str_replace( “%USERNAME%”, $user[‘user_login’], $email_text );
    $message = str_replace( “%PASSWORD%”, $user[‘password’], $message );

    wp_mail( $to, $subject, $email_text );

    Notice that $email_text is the raw message and $message is what should be in the last statement – better yet, eliminate the new variable entirely:

    foreach ( (array)$users[‘success’] as $user ) {
    $to = $user[‘user_email’];
    $email_text = str_replace( “%USERNAME%”, $user[‘user_login’], $email_text );
    $email_text = str_replace( “%PASSWORD%”, $user[‘password’], $email_text );

    wp_mail( $to, $subject, $email_text );

    Bud sadly, although I can get the encoded password, I fear that since the version of import-to-ning I ran did not store the passwords in the database, they’re unobtainable.

    Still a wonderful tool and I thank you LOTS for creating it.


  124. Boone Gorges Post author

    Hi Karen,

    Thanks a million for your contributions here.

    Re: avatars. The plugin is supposed to do this automatically, but differing server setups (as well as, I’m sure, some bugs) make it not work in all cases. Thanks very much for the manual instructions!

    Re: emails. That $message/$email_text error is really serious – so sorry about it. I just released 2.0.6 with a fix.

    Re: passwords. I do save the raw user data, including autogenerated passwords, in an option called bp_ning_import_users. At this point, I would recommend using that data to write a quick script yourself to do the emailing. It’ll look something like this:

    $bp_user_list = get_option( 'bp_ning_import_users' );
    foreach( $bp_user_list as $bp_user ) {
    // Get the username
    $username = $bp_user['user_login'];

    // Get the user email (not stored in the option, so we have to call it up)
    $userdata = get_userdata( $bp_user['id'] );
    $email = $userdata->user_email;

    // Get the password
    $password = $bp_user['password'];

    // Now copy over some of the code from the plugin itself to concatenate the mail and send it using wp_mail().

    I have not done an extensive test of this, but something like it should work. And again, sorry about the problem with $message/$email_text that made it happen.

  125. Ozy

    Boone – I installed the latest version of ‘import ning’ plugin tonight. I was able to import members and profiles, but when it gets to importing ‘Groups’ it is hanging. It does not show anything under ‘Created Groups’, and if I refresh the import page (or restart the entire import) I get one new unnamed group for every refresh/restart (as seen in separate window for site). Every group shows age of 41 years, 3 months, and lead nowhere. I have attempted this 55 times now, always with same results.

    Any suggestions?

  126. Ozy

    I looked in the ning backup folder, and the file ‘ning-groups.json’ contains only:


    The ning site I am converting from does NOT show a ‘Groups’ tab. I do not know why there is no tab, but I assume that your importer doesn’t know what to do with ‘no groups’…

  127. IsraelWebDev

    Grabbed this from another plugin –
    if you want to be WP 3.1 compatible, the menu hook should be:

    add_action(is_multisite() ? ‘network_admin_menu’ : ‘admin_menu’, ‘bp_ning_import_add_management_pages’);

    The is_multisite() check might not be necessary, as you probably have to be multisite for most of this to work, right?

  128. Scott Graves

    Iam using the latest version of your Ning-to-Wordpress plugin, the latest version of Buddypress, WP 3.1.1 and use the WhiteHouse theme from Pagelines. My ning-files folder is was FTP’d to the server. My Ning export contains 376 members and a nominal amount of content.

    I started the import process. Members imported properly and required a few refreshes. Profiles imported properly.

    When the plugin got to the Groups import step, it hangs. The text message instructs me to hit refresh a few times and click the “Continue” button. There is no Continue button. As a result, I can’t finish this step and can’t move on to the next step.

    The most important thing for me to be able to import into my WP site is the blog posts and their comments.

    Your guidance would be greatly appreciated!

  129. mrgorefest

    I figured out how to solve it: just create an empty file in the folder ning-files and name it “ning-groups-local.json”.

    Another problem: I’m importing the forum but after it imported many discussions, it gives me “Refresh to import more discussions”. I refresh but it loads always the same discussion ending with “Refresh to import more discussions”. of course I stucks there and I can’t import anything else!

  130. Thiago

    I did some improvements, include a Ajax layer in order to avoid time out errors.
    I want to share it with you! Is there any file repository where I can push those updates.
    Thanks for the plugin! It is very useful for me!

  131. astacia

    I am attempting an import and I get fatal errors with not refresh option. I have been F5 refreshing and it is uploading the members table. After several F5s, it get

    “Internal Server Error

    The server encountered an internal error or misconfiguration and was unable to complete your request.”

    repeatedly. I have set permissions 777 and that doesn’t help.


    Ack! Astacia – quick set your directory back to normal permissions. 777 leaves your server wide open to hackers.

    First you have to ftp your files exported from ning up to the server. If you are just setting up, you may want to wipe your wp installation and start over installing wordpress, buddypress and then try the import process again. (That’s what’ I’d do but perhaps the author has a better method)

    Check your .htaccess files…maybe something’s screwy there?

  133. astacia

    @karen- it is a test site, totally clean install. only buddypress and the import are installed. It’s the default .htaccess

  134. astacia

    After more time working with it, I have found it’s my FTP. 3 reloads is using up my 10 allowed connections. I then have to kill all connections.

    Each time I hit the continue button, the next screen says

    “Importing users – this may take a while.

    If you see a Refresh message at the bottom of the page you’ll need to refresh the page in order to continue importing.
    Fatal error: Maximum execution time of 30 seconds exceeded in [whatever file the uploader timed out on] on line [###]”

    Does anyone know of any easy (not line command) way to increase the execution time? I’ve been doing this for four hours and it’s only to 86 users imported.

  135. Tyler

    I have uploaded all files, the JSON files are all in the proper place.

    I have even placed duplicates in the
    /import from ning/JSON.
    In order to run the importer, you must first use your FTP program to upload the contents of your Ning export into a directory called ning-files in your wp-content directory. The plugin couldn’t find a members file at /home/stormy/public_html/VNC/, which probably means that you haven’t uploaded the files to the right place. Upload your unzipped export to the json directory, and try visiting this page again.

    Can anyone offer advice?

  136. Tyler

    I managed to get it to read the ning-members-local.json file, but now i am receiving

    Created down the line.

    Then the message sorry I could not create any accounts.

    Any advise?

    I had to convert a .csv, to the JSON.

  137. nike free singapore

    I’m impressed, I have to say. Really not often do I encounter a weblog that’s each educative and entertaining, and let me tell you, you have hit the nail on the head. Your concept is outstanding; the problem is something that not enough people are talking intelligently about. I am very happy that I stumbled throughout this in my seek for something referring to this.

  138. Tyler

    I managed to get this issue fixed.
    Turns out my ning archiver did not pull the ning-members.json properly.
    Redownloaded and set up a shadow copy of the site.

    Tested and confirmed.

    Thank you Boone for your awesome import tool

  139. Elgee

    I keep trying to import forum posts but they are not associated with a group and I’m not sure how to import them if they are not – or how to associate them with a group now. is there a workaround? thanks!

  140. Mark O'Connell

    Hi Boone, Thanks for this incredible plugin. I am half way through using it but it gets stuck on the importing groups page. It says 0) groups loaded and then there is no ‘continue’ button appearing at the bottom so I can’t go further.

    My thought was that maybe i hadn’t completed the Ning Uploading process and had incomplete group and discussion json files. Have you any thoughts about how i can go forward. I think i have to wait another day until i can archive again … I really want to get those group/discussions into site if possible.


  141. Deb Wood

    I am trying to revive a Ning network that I ended in April. Finding this script could be a lifesave and enable us revive our beloved site! I have al the complete archive files from the site and have uploaded them all to the ning-files folder as instructed. The network was fairly large (over 2400 members) but I am only really wanting to import the blogs as we will be running mainly a blogging site. Members would be great but not necessary.
    When running the importer, it begins the process, it has created some users but then this following message prevents me going any further: Catchable fatal error: Object of class WP_Error could not be converted to string on line 191. I’ve tried refreshing, no go 🙁
    Any ideas?
    Many thanks

  142. Arne


    Thanks for doing this plugin. However, I seem to have run into a problem. I only want to import member information, not all the rest of the crap off the old network as we are starting anew. When I just upload the members directory plus the two members .json files, the plugin does not recognize that I have uploaded them. And yes, they are in the right directory on the server and upload has been set to 777 for the occasion.

    Any thoughts?

  143. apotek dk

    Jeg har lige set din meddelelse til den nye version af Ning importør plugin, og jeg vil gerne arbejde med dig for at sørge for det virker problemfrit med BuddyPress Media.

  144. Scott

    In the second step of the upload, I get this:

    Fatal error: Call to undefined function xprofile_get_field_id_from_name() in [shortened]/wp-content/plugins/import-from-ning/bp-functions.php on line 1243
    Original field name New field name (optional)

    Any ideas on what’s happening here?

  145. Batsirai


    I love the plugin – but my members profile pics are not being imported. Only those with gravatars are shown… but nearly everyone has a profile pic, that I downloaded and uploaded to ning-files folder. Am i missing something?

  146. Batsirai

    Great plugin – however my users profile pictures are not being imported. I uploaded them to ning-files together with all my -local files. The only profile pics that show up are those with gravatars setup already. Is your plugin supposed to bring over their profile pics – as contained in the /members/ folder after the Ning Export?

  147. Stefhan

    Hi Boone

    Sorry if this has been answered elsewhere, I have looked!

    I’m trying to use your plugin to import a csv file I created (it’s not an export from Ning). I can’t get past the “can’t find a ning-members-local.json” error message. I tried creating an empty file with that name but that hasn’t worked, and I can’t seem to find a sample json file on the net I can look at to create my own.

    Any help would be much appreciated!


  148. Robert DeBenedictis

    Hi Boone,
    The plugin has worked great for importing users and their posts. But, I am having trouble importing Group Forums. I get this error:

    0) Created group: Wordiness
    Could not create group forum for Wordiness

    Have you seen that before? Any idea of where to start?

    Thank you,

    1. Boone Gorges Post author

      Robert – Many thanks for the link to the JSON debugger. That is extremely handy to have in the toolbox!

      I’m afraid I’m not available for extensive troubleshooting on the plugin, but I have been collecting the names of developers who are. If you’d like some contact info, drop me an email: boone at gorg dot es.

  149. Ian Littauer

    I am trying to import my Ning members and blogs from to I have archived all the files from Ning and uploaded to / But I keep getting a the error messag:

    Houston, we have a problem

    In order to run the importer, you must first use your FTP program to upload the contents of your Ning export into a directory called ning-files in your wp-content directory. The plugin couldn’t find a valid members file at /hsphere/local/home/c324059/, which probably means that you haven’t uploaded the files to the right place. Upload your unzipped export to the json directory, and try visiting this page again.

    If you’re sure that your files are in the right place, then the most likely explanation is that your ning-members-local.json file is invalidly formatted. Contact Ning to ask about getting a new one.

    Not sure what I am doing wrong as everything looks good. Any advice would be greatly appreciated. Thanks!

    1. Nathaniel

      I get the same issue Ian – I think maybe the latest version of WP/BP and this plugin don’t mix, which is highly possible.

      @Boone does this work with the latest versions of WP/BP?

    2. Nathaniel

      Hey Ian, I got mine to work but it stops at the end of uploading the members and doesn’t proceed, trying to bring across a large number of members so that could be the issue.

  150. Pingback: Käyttäjätietojen siirto Ningistä Buddypressiin - Daniel Koskinen

  151. Amelia

    Hi Boone,

    I have searched and searched for an answer to this issue but I can’t find a solution anywhere.
    As soon as I hit Continue to start the Import I get this message:

    Import Users from Ning
    Importing users – this may take a while.
    If you see a Refresh message at the bottom of the page you’ll need to refresh the page in order to continue importing.
    Catchable fatal error: Object of class WP_Error could not be converted to string in /home/xxxx/public_html/xxxxx/wp-content/plugins/import-from-ning/bp-functions.php on line 191.

    I have around 2100 members and really would like to import the whole Ning site over.

    Any help would be greatly appreciated.



  152. Pingback: Case study: Migrating from Ning to WordPress & BuddyPress

  153. Beyond Facebook

    The import stalls after the 10th member. If I remove the 9th and 10th members from the Ning .json file it uploads ok. Are there any known glitches? Maybe the .json file handles some special characters incorrectly?

    1. The Bipolar Planet

      Mine was because a user joined, quit, and rejoined. Ning had her in the database twice, once marked “active” and another marked “left.”

  154. halfrid

    I am trying to import my Ning network information to a buddypress site.
    I have downloaded all the files (members, groups,etc.) and when I use the plugin to import them I get this error message:

    string(12) “love^belinda” object(stdClass)#16756 (8) { [“createdDate”]=> string(24) “2011-01-20T12:53:45.788Z” [“fullName”]=> string(12) “love^belinda” [“email”]=> string(20) “” [“profileQuestions”]=> array(0) { } [“profilePhoto”]=> string(65) “members/5001-6000/5027-226208437.png?crop=1%3A1&xj_user_default=1” [“level”]=> string(6) “member” [“state”]=> string(9) “suspended” [“contributorName”]=> string(13) “3uby9k2g8ukas” } object(WP_Error)#42230 (2) { [“errors”]=> array(1) { [“existing_user_login”]=> array(1) { [0]=> string(33) “Disculpa, este usuario ya existe.” } } [“error_data”]=> array(0) { } }

    (the spanish text says: that user already exist)

    This is because a spammer member that created 2 accounts very similar. I have deleted it and download again the json file but it still appears inside.

    I have tried to delete the entry in the json using wordpad, but then the plugin doesnt recognise the json file. I suppose that the file corrupts when I modify it

    What could I do?

    Please help.

  155. Paul

    Importing users works fine, but when trying to import groups I get:

    Fatal error: Class ‘BP_Groups_Group’ not found in /home/[mydomain]/public_html/buddypressdev/wp-content/plugins/import-from-ning/bp-functions.php on line 620

    I’ve just updated WP and BP, but still get the error when I jump to the import groups section.

    Is this the best place to ask for help?
    Thanks for your time.

    1. GlowPotion

      Hi Paul, was your Fatal error: Class ‘BP-Groups_Group’ on line 620 etc… every solved? I’ve ran into the same issue and hoping there is a quick fix. Thanks!

      1. Paul

        no sorry, never found a work around. Decided to ask our users to resign up and we imported selected content by hand. Hope you have better luck.

  156. Perrie

    Is there a way to bring over content from Ning? I am an owner of a Ning site, and this is a big issue for us. Many would love to leave Ning, but we can’t leave our content. Hope you can help.

  157. Mmc

    I’m having a problem importing members. There’s a little over 2800 members to import but it stops after importing the first few hundred. After clicking Start Over, it gets through the same first few hundred ok but stops with this (xxx’s inserted to protect personal info):

    string(13) “xxx” object(stdClass)#1499 (12) { [“createdDate”]=> string(24) “2014-06-19T15:17:34.562Z” [“fullName”]=> string(12) “xxx” [“location”]=> string(15) “Jersey City, NJ” [“country”]=> string(2) “US” [“zip”]=> string(5) “07304” [“birthdate”]=> string(10) “1987-07-17” [“email”]=> string(22) “xxx@” [“profileQuestions”]=> object(stdClass)#1500 (3) { [“I liked JCFamilies Page on Facebook (”]=> string(3) “Yes” [“Membership Type”]=> string(3) “Mom” [“About Me”]=> string(27) “Love being with my children” } [“profilePhoto”]=> string(42) “members/1-1000/578-CAM00229.jpg?crop=1%3A1” [“level”]=> string(6) “member” [“state”]=> string(6) “active” [“contributorName”]=> string(13) “2ixhlklosgpai” } object(WP_Error)#6279 (2) { [“errors”]=> array(1) { [“existing_user_email”]=> array(1) { [0]=> string(42) “Sorry, that email address is already used!” } } [“error_data”]=> array(0) { } }

    I looked through the json file and it looks ok to me, but I don’t see any reference to “Sorry, that email address is already used!” in it.

    1. Mmc

      Found the problem in the code above. There is a space after the @ in the email address. Removing that allowed all 2990(!) users to be imported. NOTE: Users were inadvertently notified when I imported them. Not all, but the ones that had posted in discussion threads. I downloaded a plugin called User Control to disable the accounts so they couldn’t poke around in the development site. I would suggest that you turn off all notifications before starting the user import. There’s code you can put in one of your buddypress files will do it. Do a search.

      Now on to figuring out why the discussions won’t import.

  158. GlowPotion

    Really thankful you took the time to share this hiccup. Not only did it fail to import more than half the members; it failed to import most all pictures in posts, failed to import discussions, forum threads. The whole damn plugin is a nightmare. I wonder if the Ning creators did this on purpose, just like the oil tycoons don’t allow renewable energy sources to be on the open market. We left Ning because they’re tyrannical money goblins.

  159. kaspalita

    Hi there – just installed your plugin with great hopes, running WP 4.4.1 and I can’t find where the actual Import From Ning button is? (The only way to BuddyPress, is through settings > BuddyPress, and I can’t see anythign there?)

    Any ideas?

  160. Kos

    It’s been a month so I assume you located it beneath “Tools”. I’ve been working on this for over three weeks and after exhausting every forum post possible, numerous videos and web searches and speaking with my c-panel provider (to the point where they know me by voice), I’ve just about given up. You would think those who create a tool, would provide ongoing assistance – or lend themself out to hire. Apparently not. It’s disappointing.

  161. Fabricio Passarelli

    I imported my 8,000 members, but none of them appears in the Members page. What should I do?

    Thank you!

Comments are closed.