A Series of Three Parts: WordPress as a SaaS Platform, The Third Part
So now that you’ve setup your WordPress powered web application and setup your environment for speed and scalability, it’s time to make it easy to manage it and work for you. Communicating and corresponding with a large community is a tricky task regardless of what application platform you choose, but WordPress gives you the tools to help you get a leg up on giving you a voice as the application author. By taking advantage of WordPress’ built-in user management tools, extending them with your own auxiliary addons, and creating automation, you can easily keep in touch with your users and manage your community.
WordPress User Management FTW
3 antique keys on wooden table photo from Shutterstock
One of the best reasons to use a platform like WordPress as the foundation of your application is the turnkey user management. WordPress comes with an already fairly granular and extendable set of user Roles and Capabilities to get you started building a capability-based security system for your web application. Along with the roles and capabilities system comes a built in user control panel for user search, modification and management.
- Have an overview of your user totals
- Edit individual user properties through a separate administrative interface
- Provide a boilerplate for adding your own custom user property controls
- Search for users based off their name, email or any user meta associated with them
By hooking into the manage_users_custom_column (for table cell display) and manage_users_column (for column header display) filters, you can create your own columns in this management table to get a quick summary of pertinent user meta. With a little custom plugin programming, the tabular User Control Panel can be configured to very easily display vital information about users such as e-commerce subscription transaction IDs, conversion data and even additional administrative functionality like logging in as a user. When managing a large web application community, in many circumstances, it is useful to be able to see things from a user’s perspective. When we made Hello Bar, we also wrote a simple plugin that adds buttons to the main User Control Panel that would then allow super administrators to log in as a different user. This was useful because we could see things from that user’s perspective, experience any error messaging they were seeing, and verify data displayed from their point of view. Of course, with great power comes great responsibility – so don’t abuse the fact that you can log in as a different user! As a sweet bonus, I’ve included a download to this plugin at the end of this article. Check out the comments in the plugin for better understanding of how you can hook into this table and make it work for you.
Robo App – Automation is Your Friend
The biggest time sink in any application build is all of the manual management you have to do of the data you and your users generate, the status of your users, movement between account types (if you have multiple account types in your application) ad infinitum. WordPress makes it super easy to automate your application through the WP_Cron system.
Automated production line in factory from Shutterstock
With WP_Cron, you can schedule activities to happen in the background of your application on a scheduled basis without complex or hacky implementation. Any WP_Cron action will run in the background without user interaction and run with full access to all of WordPress’ functions, classes and functionality. This makes it very easy for you to manipulate data on a scheduled basis, modify a user’s account after a specified period (a trial period for instance), schedule an automated email to go out to users… the possibilities are endless. With Hello Bar we utilized the WP_Cron system as well as regular cronjob technologies to automate numerous aspects of our application:
- Summarizing Usage Statistics – instead of querying our statistics database for usage numbers every time the statistics were requested, for summary totals we would use a cronjob to automatically tally and cache the numbers.
- Modifying User Subscriptions – If a user cancelled their paid subscription with us, our payment processing system – S2Member – would automatically schedule a downgrade date with WP_Cron based off the end of their final billing cycle. The user would cancel their subscription immediately, but we wouldn’t have to modify their account since the app did it for us.
- Communicating With Our Users – Hello Bars are all about improving the conversion on your website, so we wanted to make sure our users knew about their performance. We used a WP_Cron system to monitor users’ statistics and sent them scheduled emails every day, week or month depending on their set preferences for their Hello Bar’s performance. This allowed our users to see how well an A/B test was performing, if they needed to improve their message, or if they were approaching their account tier’s limit threshold which might need then to upgrade to the next account tier.
WP_Cron does have a few caveats, but nothing that doesn’t have a solution to it. I highly recommend that when you setup your background automations, that you read this great article on insight into WP-Cron by our friends at Envato on WPTuts+ (a fantastic WordPress development resource).
WordPress provides a great solution as a viable, turnkey software as a service application platform. Through an optimized for WordPress high performance server configuration, utilization of the excellent developer community and its highly extensible system control panel, you can get a great application up and running, serving the world your greatest idea. WordPress’ built-in management control panel and its easy to implement WP_Cron system allow you to easily manage your application and automate many of the mundane time consumers, so you can focus on improving your users’ experience.
Useful Links for Building WordPress Applications:
- Download the Login as User Plugin (can be installed as MU Plugin or regular plugin)
- WordPress as a SaaS Application Platform? …Whaa?!
- WordPress as a SaaS Application Part II…Speed and Scalability?!