WordPress Workflow Plugin in the Works

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

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

As an end user (someone without publish permissions), they have an option to Submit to Workflow that must be checked when saving the page. This triggers an email to all of the approvers notifying them a new page is ready to be reviewed. If the box is not checked when they save, it will make a new revision in the database and keep the published page the same as it was. When the user loads the page after updating, it will automatically show all of the draft copy they were just working on. Technical note: this was probably the most difficult part to figure out. I ended up hooking into the add_meta_boxes hook to update the post content before the page finished loading.

Approvers

As for the approvers, they receive an email, but they also have a snazzy dashboard to view within WordPress. I couldn’t have put this dashboard page together without the help of WP Engineer for creating my own WP_List_Table. I’ll eventually expand this too, giving the ability to search, filter and maybe even some batch actions.

Comparing Revisions

I ended up using the built-in comparison feature that WordPress offers for the actual approval part of the process. When the approver restores a revision, it marks the page as no longer in the workflow.

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.

You may also like...

22 Responses

  1. Gerhard says:

    Hi Eric!

    This sounds great – I'm looking for something just like your plugin! How far away from a release is it? Have a great day, best, Gerhard

  2. arlene says:

    Hi. I'm not sure if it's just with our wp setup, but it seems to be only specific to this plugin, I can't seem to receive any notification after the contributor clicks 'submit for review'.

    • Eric Juden says:

      Hi Arlene,

      Have you gone into the settings for the plugin and chosen a group to be the approvers? I believe it defaults to administrators, but you may go check. Also, do you receive any other notifications from your WordPress site? Could it possibly be that your site is not sending emails?

      • Jason Hayhurst says:

        I have the same problem but can receive wp notifications. The default notifier group is administrators though. Should I set up an approver group rather than administrators?

        • Eric Juden says:

          Jason,

          What exactly is your problem? Alrene's problem was that she could not receive notifications. You said you can receive notifications. You can leave the group set to administrators, it will be fine.

          Eric

          • Arlene says:

            Hi Eric,

            Same with Jason, WP notifications are being sent like in creating users, form plugins, etc. The plugin is not sending anything though. Maybe, we have the same setup as Jason where the mail domain is not parked on the same account. I'm guessing that the hosting account provider is blocking spam emails and this problem is related. Like if I set the source of the email to a@x.com and that a@x.com is residing elsewhere, it will be blocked. Not yet sure though if this is the case.

          • Eric Juden says:

            This plugin is not doing anything different from other plugins. It's using the built-in wp_mail() function from WordPress.

            I would try testing with another email address and see if you still get the same results.

            Eric

        • arlene says:

          Thank you. I have no other Web Hosting to experiment with. Please let us know the results on your end.

          Domain in Hosting: a@x.com

          Approval Workflow Notification Sender : b@y.com

          Approval Workflow Notification Receiver: c@z.com

          The last resort maybe is to use plugins like Configure SMTP to use other emailing like gmail in sending.

          • Eric Juden says:

            Arlene,

            I've not experienced these problems on my end. It sends emails just fine. I'm sorry I can't be anymore help to you.

            Eric

  3. Brian Lacy says:

    Approval Workflow looks like it may work for my needs, but I'm wondering if there are any comparison articles out there with Revisionary?

    • Eric Juden says:

      Hey Brian, I'm not sure of any articles comparing the two plugins. I've actually never heard of Revisionary until now.

      Let me know if you find an article.

      Eric

  4. Sean says:

    I've been using the Revisionary plugin for the workflow I've set up and for the most part it does what it advertises but there are funky nuances that I don't really care for. First of all, there's no way for a user to preview their changes before they get submitted for editorial review.

    I'm interested in trying out your plugin, but wanted to ask if it affects the published page at all before an "approver" approves the revision?

  5. Sean says:

    and I have to say that I already like this plugin much, MUCH better than Revisionary. It does everything I need…

    However, like earlier posters, I get no notifications from plugin but I do get from the rest of the site. I have the review group set to admin. Plus, I have no idea where I can go to view these submissions?? Approver dashboard is AWOL?

    • Eric Juden says:

      Thanks Sean,

      Looks like it's not playing very nicely with regular WordPress. I built this with WordPress Multisite. I've just installed on regular WordPress, so watch for an updated version in the next few days.

      Eric

      • Sean says:

        You work incredibly fast… I will check out the update to see if it addresses the problem for me but as I mentioned your implementation is, in my opinion, superior to the other workflow plugins available.

      • Sean says:

        Okay, it appears to have fixed the approver dashboard and notification emails. Great work. I'd give you twelve thumbs up if I had as many.

        So now that I can *see* the workflow submissions, there's no way to delete the revision submission as one normally would when reviewing revisions. And even though I understand the "Restore" works as an approval for the workflow submission, would it be slightly more clear if there was an "Approve" button/link? Does the end user get a notification that their revision has been approved/published?

        I'm glad I stumbled upon this when I did. Revisionary is clearly not cutting it.

  6. Finnegan Pope-Carter says:

    Hi Eric

    This plugin is everything i want it to be however i'm having an issue with already published pages.

    It seems whenever a user who has no 'publish' permissions edits pages they enter the workflow correctly but also go live straight away. Can you think of any reason this might be happening? The content in the edit page is the old content but the live content is the non-verified content.

    thanks

  7. Andy says:

    Does this plugin still exist? The link for it seems to be broken, thanks.