Normally I say great things about WooCommerce, not because I have to but because it's really awesome. Today though I found something that wasn't very awesome. Actually that's too nice – it sucks. Have you ever tried to create a membership site with WooCommerce? It doesn't seem like it would be that hard right?
How to Restrict Pages with WooCommerce & Groups
So how many steps do you think it should take to restrict content to members only? Three, maybe four or five? Tell you what – I'll write them down and you can count them.
- Install WooCommerce + Groups + Groups for WooCommerce
- In the WordPress Admin click on Groups
- Click on Groups and then Capabilities
- Click on New Capability
- Add a name for this capability. Something like “read premium posts” is a pretty good name.
- Press the Add button
- Click on New Group
- Enter a name for the group
- Enter your previous created capability for the group
- Press the Add button
- Click on Groups and then Options
- Under Capabilities add the new capability we created.
- Click on Pages and then Add New
- Add a title and content as you would any other WordPress page.
- In the sidebar you should see an Access Restrictions panel where you can enter the capability you created.
- Click Publish
Pfew – think we're done? Nope. Not yet. We've created a capability that allows us to restrict content, added that capability to a group, and created a page that can only be seen by groups with that capability. We haven't even touched WooCommerce yet.
- In the WordPress Admin click on Products and then click on Add Product
- Enter a title, description, and price as you would any other product.
- Scroll down to the Product Data panel
- Click on the Groups tab
- In the Add to Groups field enter the name of the group you created earlier
- Press Publish
What's Going On?
In case you were too lazy to count that's twenty two steps. That's way too many steps. When something takes twenty two steps when it only takes a handful of steps conceptually that means that something's broken. It's the difference between plugging your computer into a power outlet vs plugging your computer into an extension cord which is plugged into a power stripe which is plugged into a british power converter because your building was wired wrong.
I know something isn't working when I stumble. When I was writing up these steps I forgot a few and guess what? It didn't work and I had to go back to the beginning to find the missing steps. If I'm a developer and I can't figure that out what does that mean for our users?
Why It's Hard
Why does it work this way? Because it's flexible. Anything that's flexible is also complex. There are a lot of other capabilities you can assign to groups and that's awesome for people who want to have groups that can do all sorts of cool things. But what percentage of membership sites need the added flexibility? Is it worth building a complex product for 95% of the use cases out there or building a simple product for 80%? These days I'm leaning towards building a product for 80% and having something that those 80% love. Not something they see and are confused and disappointed. By removing the capabilities and just having groups of members you might be able to remove a third of the above steps.
What We're Going to Do
I like fixing things. I like looking at how average users use WooCommerce and giving them a voice. If they can't figure it out we built it wrong. I honestly don't know what we're going to do yet. What I do know is that we have to do something. We can't have mediocre products. This isn't the age of the mediocre product. This is the age where you make kickass stuff or you get out of the way and let someone else do it.
I'll be looking into improving the existing integration and also an entirely new product. Which one we go for I have no idea at this time. In the interim if you have any desire to run a membership site let me know. I wrote up a survey to get an idea what people who run membership sites need.
Photo credit: Giphy