A long while ago I worked with UMW History professor Allyson Poska to migrate the Society of the Study of Early Modern Women‘s (SSEMW) website to WordPress. It was fairly straight forward given it was a small academic organization without too many pages or gimmicks. I can’t fully remember now, but I think it was in straight-up HTML, so there was a little work cleaning up links and formatting before copying them into pages, but nothing crazy. The other thing they asked about was a simple directory of members so they could keep track of who registered when, paid their dues, emails, etc. At the time Martha and Tim had been playing extensively with plugins like Gravity Forms, Views, Types, etc. for project sites, and I knew they had built similar functionality.
So, as is often the case, I went to the proverbial well. Tim showed me how to work through setting up custom posts types using the Types plugin. You can see the posts for the Membership directory below.
Then I used the Views plugin to display the fields in a directory layout. Views is powerful, but not all that intuitive and I tended to lose my way. It becomes very Drupally very fast, but the final product worked.
These custom post types contained data people manually entered to manage the membership details, and the directory was a bonus. [I believe we figure out how to do a bulk import of content into the custom post types.] This was not linked to member registration nor membership dues, although we’ll get there. We didn’t use Gravity Forms at all for the directory, but as an excuse to play with them, I built a simple post submission form that anyone in the community could use to add news, calls for papers, fellowships, etc. Dead simple.
I did this almost four years ago now, and really hadn’t thought about it again until this Spring. The officers at SSEMW reach out to me once in a blue moon for something, but it has been basically zero overhead and I was pleasantly surprised to see they’ve been regularly posting—that’s always a good sign. And Allyson Poska has long since moved on as an officer, so it was cool to see it transitioned fairly smoothly.
Anyway, long story short, last year Jodi Campbell reached out to me about a similar site for the academic organization she is web master for, namely the Association for Spanish and Portuguese Historical Studies (ASPHS). I was game for a discussion, but time and work got in the way for both of us so we didn’t reconnect on this project until this February. Before we talked I had to jar my memory of what I did with SSEMW. When I talked with Jodi she was interested in a directory like SSEMW, as well as an announcement/post form. Simple enough, or so I thought. But that changed once we started talking about providing a form the association’s members would use to register new members, renew existing membership, and edit their directory information. Also, they wanted more seamless integration with Paypal. So, in other words, a website that manages most of the membership details, provides a venue for sharing news and announcements, and has a membership directory to connect folks. All makes sense, a manageable hub for your academic organization that stops short of trying to reproduce the creepy treehouse that is Facebook. I agreed to give it a shot, and spent the last few months (in between travel and procrastination) working on it.
To be fair, I had the site migrated and up and running on WordPress in less than a week. It was thinking through the member registration and directory that took a bit more time. The form would be used by members to sign-up, re-new, and update their profile, so a custom post type like the one we used at SSEMW would not work. Looking at Gravity Forms more closely I realized they had at least two pieces of the puzzle worked out: PayPal integration and user registration.* The combination of these two plugins/addons through Gravity Forms solved the new member registration and payment issue. I was very happy with the results, but I ‘m still struggling with enabling simple renewals of membership through PayPal. I’ll be working on that solution over the coming month.
The other issue was getting the data members using the form visualized as part of a member directory. I explored this free plugin for creating a directory using Gravity Forms, but it was limited in it’s visual range and having users edit their entries was not working. The latter fail was a deal breaker, because giving user’s the ability to edit their own data is something we needed. Another issue was I needed to import the data of about 500 existing users and the Gravity Forms Mass Importer plugin was not working, and it hasn’t been updated for a year which is not a good sign.
So, I had already bought one plugin suite for $199, which to be fair can be used on a host of other sites should we need it. While looking for alternatives for the directory and import issues, I discovered the Gravity Views plugin. Despite the bizarre video of the guy (plugin author?) in the purple shirt, it promised to solve my directory and import issues. The plugin integrates with Gravity Forms and allows you to create a sophisticated set of views with the data. What’s more, the plugin suite provides an importer, which was a must because I had no intentions of manually entering hundreds of records. That said, the price was steep, $249 for a yearly license, annually renewable at 40% the sticker price. Ouch! I got sticker shock and searched for other alternatives and toyed with manual entry and making the existing directory plugin work, but that was short lived. I had to get something up and running and I was wasting time pretending I was going to will my way to a working alternative. I bit the bullet on Gravity Views earlier this week—after finally returning to the project after a month of travel—and I am pretty happy with the result. Below is a look at the multiple entry directory list (notice the “View Details” and “Edit Entry” buttons):
Click on the View Details for any entry you get a single entry directory view like this:
And finally, the ability for individual users and admins to edit their profile info.
Gravity Views made creating these various views as a directory seamless, and they even built an opt-in field for the Gravity Form so folks can decide if they want their info in the directory at sign-up. I could easily show Jodi Campbell how to use Gravity View in a few minutes and feel confident she could manage all of this going forward, that would not be the case with Toolset’s Views and Types. Simplicity is a big factor for me because it’s scalable, not to mention desirable, for me not to manage the details of a site like this. The other piece Gravity Views promised was a clean import of data, and having tested that over the last couple of days I am also happy with the results. I had to clean up the data I got from ASPHS, but after importing scores of test accounts I’m sure it will work for almost 500 records. I did get a PHP offset error which I copied below, and I am still chasing that one down, but the data imported cleanly, and I am not seeing any adverse effects besides some ugly errors during import.
Notice: Undefined offset: 1 in /home/asphsnet/public_html/wp-content/plugins/gravityforms/common.php on line 2886 Notice: ob_end_flush(): failed to delete and flush buffer. No buffer to delete or flush in /home/asphsnet/public_html/wp-content/plugins/gravityview-importer/class-gravityview-entry-importer.php on line 331
Being all but done with this project is a big relief. I dragged it out a bit while struggling with the best way forward, but in the end I think you can create a pretty dynamic, impressive site for your small academic organization at a fairly modest price. If you take into account hosting and the yearly price of the plugins, you could set something like this up for your org for less than $500 a year. And much, much cheaper if you don’t need the premium plugins, but I would be surprised if you could get custom code half as cheap to do any of this without writing it yourself—something I have no pretensions of doing.
We’ll be testing the setup out with some select users at ASPHS over the next few days, and then rolling it out to all users over the coming month. One issue I do have with Gravity Views is I’m having problems enabling users to change their password within the edit entry view. Right now I’m working around this by having all imported users prompted to change or accept their given password at sign-up, but I do need a long-term solution for seamless password changes within the directory/profile edit page for users. Regardless this has been a kind of fun side project, if for nothing else to figure how to take the SSEMW site to the next level. Also, I know some that may read this will have much more experience with Gravity Forms and possible ideas for work arounds or a better approach—consider me all ears.
*The developer license is $199/year, and given Tim and I both had projects that would use it we splurged. I don’t necessarily love buy premium plugins, but at the same time I learned for this project it is far, far cheaper than me actually trying to learn how to code 🙂
“becomes very Drupally very fast” is a new favorite for me. I’m trying to think of other things that become very Drupally very fast but can only seem to be replacing sentences that would normally end with “jumped the shark.” DS106 socks became very Drupally very fast. See–I think I’ve already removed the original intention.
I’ve been helping the Middlebury folks move some data from an iPad app to WordPress posts and have been using the “Import users from CSV with meta.” I like the idea of having the public facing form though too. Smart thinking Groom and co.!
Yeah, Gravity Forms will take you amazingly far in terms of easy forms for folks to fill out and then for you to manage. The Gravity Views plugin is pretty awesome for actually quick styling and structuring that data. Alan is totally right you can do that with some core function codes, but I recognize my limits—it’s one of my newly acquired strengths 🙂
For membership sites you might consider the Paid Membership Pro plugin http://www.paidmembershipspro.com/ which despite its name, is free to use (you pay for support). I set it up when I worked on http://solaresearch.org/
I was never a fan of the Views plugin- I always found the views clunky; Types was useful and did the job well, though I found my reading the WP codex it was quite easy to set up custom post types in a functions.php Once you get that types are like posts, and you can have their own theme files for single views and archives, it is more flexible just to child theme your site, copy single.php / archive.php and make the layout exactly as you want. That’s at the core of the DS106 Assignment Bank theme.
Gravity forms is super powerful (c.f. Woodward) when you dive in deep, and I do use it a lot on client sites. I think though, as a developer, it can also make you lean on it a bit much at times. For the sites you did (outside of setting up payment), I might have looked at the plugins or code that allow you to extend the profile fields in WP, and have the “members” make basic subscriber accounts. Maybe. I do think that setting it up so they do not have to see a dashboard is a way to go, but WP has a fully developed user database structure, thatr could be exploited.
In the end, it does not matter how you comb the cat, as long as the sucker works.
I was hoping you would comment, because I follow a lot of the kungfu voodoo you do for folks, and I I know this is a far more packaged approach. I originally wanted to hack the user profile fields and have users login and manage the data they entered at sign-up there, but I got lost, and I really didn’t find to many plugins that made it easy. I know there are limits from separating user data in the directory from the core user data in WordPress, at the same time it was definitely neater and cleaner this way. As long as the plugin is maintained (and that is a big if), I am fairly certain this can be managed beyond me. What’s more, Gravity Forms does allow you easy import and export of all the data should you want to do something else, which is how I justify paying. Paying for Gravity Views was a bit hard pill for me to swallow, but I don’t think I’ll regret it. If I do a few more sites that may use it—it would quickly pay for itself. I like the paidmembership pro plugin for possibly resolving the renewal issue, so that is a key link—thanks for that!
If nothing else, this project helped me jump back into the happy land of developing small, one-off WordPress sites—it felt good 🙂