As part of our migration to WordPress at work we needed some sort of workflow to check the pages before they go live. Sort of a last check to make sure the styling looks good.
When I first started this “holy grail” search, I evaluated a few plugins:
- Edit Flow
- Post Revision Workflow (Inspiration for my plugin)
Edit Flow
Edit Flow seemed really robust, but it was meant more for new content. I needed something that would work with editing existing content, like pages. Edit Flow would allow you to change the status, but that would actually remove the page from your site, because it is no longer considered published…not what I wanted to do.
Post Revision Workflow
Post Revision Workflow seemed closer to what I was looking for. I felt it gave too many options to the end user. I wanted to decide who would receive notification, not let the end user decide. But I liked how it worked on the backend. Basically, after updating a post/page/or other custom post type it creates a revision in the posts table. If you saved it as a draft, this plugin would look at the revisions and re-publish the previous revision (the actual one you wanted to be live and not your draft).
My Solution
My solution, Approval Workflow, was highly influenced by Curtiss Grymala’s Post Revision Worfklow plugin. Approval Workflow allows you to set a group as the approvers. Note: this group must have publish permissions. The approvers get notified by email when someone has submitted something to the workflow. This works on WordPress Multisite too, but I’m using a custom plugin to manage the roles between sites. More on that topic here.
End Users
Approvers
Comparing Revisions
What’s Left
I need to add a notification at the top of the page saying it hasn’t been submitted to the workflow yet, if it has some pending changes out there. I can see the users getting lost and forgetting to submit it to the workflow. I have to hide the site column from the dashboard if it’s been run on regular WordPress. Also, it needs a little more testing too, before I release it to the masses.