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.
WordPress workflow plan

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.
Copy the Author role
  • Give it the “Role Name”. We will enter “Reviewer”.
  • Click create role
  • Repeat that process so you also create a “Web Master” role.
Create a Reviewer role in WordPress

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:
Users in two new WordPress 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 “Statuses” 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.

Adding a Final review status in WordPress

Step #4. Choose permissions for the Statuses #

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

  • Go to Capabilities > Settings in your WordPress admin menu.
  • Go to the “Capabilities” tab.
  • Check the box, “Control selection of custom post statuses”.
Control selection of custom post 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.

Custom statuses in PublishPress Capabilities

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.

Custom statuses in PublishPress Capabilities

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 Testing feature.

  • 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”.
Custom workflow in PublishPress Capabilities
  • The “Reviewer” can review the content created by Authors. They can either change the status to “Final Review” or return it to “Draft” status.
Custom WordPress workflow statuses
  • 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.
Custom WordPress workflow status