Create a Multi-Step Workflow in WordPress

PublishPress users often ask us how to create a specific publishing workflow in WordPress.

This week, one user emailed us the graphic you see below, asking how to set up a Draft / Pending Review / Final Review workflow in WordPress.

In this tutorial, I'll guide you step-by-step through setting up this workflow:

  • Authors write the content and send it for review.
  • Reviewers check the content and send it for final approval.
  • Web Masters approve and publish the content.

Step #1. Install the plugins #

For this workflow, we're going to use two plugins:

Install these two plugins into your site.


Step #2. Create New User Roles #

On an existing WordPress site, there is already an “Author” role. So we will need to create two more roles: “Reviewer” and “Web Master”.

We're going to make two copies of the “Author” role because that role has a good set of permissions for people working with content.

  • Click “Capabilities” in the WordPress admin menu.
  • Go to “Roles” menu.
  • Copy the Author role.
  • Give it a name as Reviewer.
  • Click create role
  • Repeat that process so you also create a “Web Master” role.

Next, I would recommend placing one test user in each of the three roles. You will need these users in order to accurately test your new workflow.

  • Go to “Users” in your WordPress admin menu.
  • Create or place a user in each of the three roles:

Step #3. Create the Statuses #

Now we're going to set up the stages of the workflow: Draft / Pending Review / Final Review.

  • Go to “Planner”, then “Settings” in your WordPress admin menu.
  • Click the “Statuses” tab.

Here you can edit the statuses to match your workflow. In this situation, both “Draft” and “Pending Review” are existing WordPress statuses. I would highly recommend keeping both of those. So you only need to create or edit a “Final Review” status.


Step #4. Choose permissions for the Statuses #

Now we're going to control who can move content to different statuses.

  • Go to Capabilities Setting > go to tab Capabilities.
  • Check the box, “Control Custom Statuses”.

Now you can choose the status permissions for each user role. Here are my recommendations for the Author role. Notice that Author does NOT have permissions for “Publish” or for using the “Final Review” status.

In this next image are my recommendations for the “Reviewer” role. Users in this role can “Edit Others” posts, which means they can work on posts created by “Authors”. This role can also move posts to the “Final Review” status.

For the “Web Master” role, the custom statuses permissions are the same like reviewer but this role has many key extra permissions, including the ability to publish and delete posts. .


Step #5. Test the Workflow #

Now it's time to test your workflow. This is easier to do with the User Switching plugin installed.

  • The “Author” can create content. This image is what they will see when creating content: the “Publish” button shows but will not work for them. They can only move content to the “Pending Review” status or save it as a “Draft”.
  • The “Reviewer” can review the content created by Authors. They can either change the status to “Final Review” or return it to “Draft” status.
  • The “Web Master” can approve or publish the content. This image shows what they can see. They can either publish the content or move it back to an earlier stage.

More options with PublishPress #

The PublishPress plugins are flexible enough that you can create many variations on this set up.

  • If you want users to discuss the post while working on them, you can use the the Editorial Comments in PublishPress Planner Pro. This would be the ideal way to explain why a post is being rejected.
  • To block Authors from seeing the ideas from other users, try this technique.
  • If you need to assign more than one Author to work on a post, we recommend the PublishPress Authors plugin.
  • To send updates to Authors, Reviewers and Web Masters as content moves through these stages, the PublishPress Pro plugin can send email and Slack notifications.

Your site may have slightly different needs. You can tweak the workflow to meet your needs. Contact us if you need any help at all.