WordPress’ user and permission system is good, but if you want to allow people to register on your site to do something that’s not related to creating pages and blogging, it’s going to get a little weird.
Back at Ebullient, we did a prototype of a product, and in the rush, I extended the existing WordPress user registration system to allow registration from the front end. It took around a week, and I learned a lot more about that system than I wanted to know.
User registration systems are complex, though you’d never think they’d be. We’re so familar with them that we just overlook their moving parts. A typical user registration system has around fifteen screens or pages. It’s not just “login” and “welcome”. You have the password recovery, the registration form, the profile editing, and profile deletion.
WordPress comes with all that, so altering it to allow easier onboarding isn’t that hard, excepting the fact that the entire user experience is hard-coded into the application. Worse, if the system is updated, your changes are wiped out.
I should have looked at external solutions that would provide a login system that didn’t create users in the WordPress system.
There are a bunch of them.
Most seem to be of the “pay for content” model, or what I think of as the “pornsite” model where you give some away, on the site, and get monthly payment for the rest.
Others have content drips and mass marketing integrations. This is for the “make money fast with my $99 class” business model, where you are teaching people something, but withholding the valuable parts. You keep sending them email to get them to sign up.
Some seem to work with BuddyPress, so they can work more like a social network. That’s a different model where you’re charging money, basically, to keep the trolls away.
I’ll have to look into it and see if it matches what I need.
I’m replacing the old hacks to extend WP with a membership system. The business model is TBD, and this is more of a promotional product for listbuilding, so I’m actually inclined to write my own plugin with the following features:
- Some kind of email module that pushes out a lot of reminders
- Notification system layer, so users can choose mode of notification (email, mobile, ?)
- Possibly laravel auth as the security system, so I don’t need to write it, and so we have an exit path.
I’ll need to set aside time to work on this.