Post Revision Workflow is a new plugin in development that will allow WordPress users to make changes to a published page or post without actually publishing the new modifications.
Description
This plugin adds a minor bit of workflow to the WordPress interface. When anyone edits a post or a page that has already been published, a few extra options will be available in the “Publish” metabox. Any time the appropriate option is chosen, the changes will be saved as a revision to the page or post, and the previous revision (the version that was already published) will remain published.
The person editing the page can choose from the following four options:
- Publish these modifications normally – This will avoid running any of the functions in this plugin and publish the changes the way they would normally be published. This is always the default.
- Save these changes as a revision, but don’t notify anyone – This will revert the page or post to the version that was already published, saving the modifications as a post revision. This will not send out any notification emails.
- Save these revisions as a draft and notify reviewer – This will revert the page or post to the version that was already published, saving the modifications as a post revision. This will also send out an email message to the email address entered in the options.
- Publish these modifications, but notify a reviewer that changes were made – This will publish the changes normally, but will still dispatch a notification message to the email address provided.
If the third or fourth option is selected, a box will appear asking the user to provide an email address to which to send the notification message. If that box is left empty, the plugin will attempt to retrieve the value of the “dpn_reviewers” option from the individual site. If that option doesn’t exist, the “dpn_reviewers” option will be retrieved from the network (if installed in a multisite environment). No interface has been built yet (probably in the next version) to allow you to create/edit the “dpn_reviewers” option, so it will need to be inserted manually into the database if you want to use it. If neither of those options exist, the email address of the site’s admin will be used.
Installation
This plugin can be installed as a normal plugin, a multisite (network-active) plugin or a mu-plugin (must-use).
To install as a normal or multisite plugin manually:
- Download the ZIP file of the current version
- Unzip the file on your computer
- Upload the post-revision-workflow folder to /wp-content/plugins
To install as a normal or multisite plugin automatically:
- Visit Plugins -> Add New in your Site Admin (for normal WordPress installations) or Network Admin (for multisite WordPress installations) area
- Search for Post Revision Workflow
- Click the “Install” link for this plugin
To activate the plugin on a single site:
- Go to the Plugins menu within the Site Admin area and click the “Activate” link
To network-activate the plugin on a multisite network:
- Go to the Plugins menu within the Network Admin area and click the “Activate” link
To install as a mu-plugin:
- Download the ZIP file of the current version
- Unzip the file on your computer
- Upload all of the files inside of the post-revision-workflow folder into your /wp-content/mu-plugins directory. If you upload the post-revision-workflow folder itself, you will need to move post-revision-workflow.php out of that folder so it resides directly in /wp-content/mu-plugins
Frequently Asked Questions
How do I set the email address for the person or people that should be notified of changes?
Right now, there is no interface to set the email address as a sitewide or network-wide option. If you would like to set that option, you will need to add the “dpn_reviewers” option manually to the database (the options table or the sitemeta table for site options or network options, respectively).
Email addresses are used with the following priority (higher items on the list overriding all instances of items lower on the list):
- Email address entered in the box within the “Publish” metabox on the post/page edit screen
- “dpn_reviewers” option set in the options table
- “dpn_reviewers” option set in the sitemeta table
- Admin email address set within Site Admin -> Settings
Will this plugin work in a multisite environment?
Yes. It can be activated normally on each individual site or it can be network-activated.
Will this plugin work in a multi-network environment?
Yes. However, at this time, there are no action links to automatically activate it on all networks at once. Instead, it will have to be network-activated on each individual network (as desired).
Screenshots
- The way the “Publish” metabox looks by default with this plugin active
- One of the options that does not dispatch a notification message is selected
- One of the options that dispatches a notification message is selected, and the email address option box is visible
To Do
- Add an interface to modify the email address(es) to which notification messages should be sent.
- Include multi-network activation options
- Implement the ability to add this functionality to custom post types
Known Issues
- The interface to review and approve modifications (the default revision comparison built into WordPress) is not extremely user-friendly. Some training will most likely be necessary to teach reviewers how to identify and approve the appropriate revisions.
- If multiple reviewers are notified of modifications, there is no easy way to let them all know when one of them reviews and approves (or potentially rejects) the changes.
- There is no interface currently available to delete revisions, which means there is no way (other than taking no action at all) to actually reject any changes.
Download
The current version of this plugin can be downloaded from the WordPress repository.



Pingback: Adding a Bit of Workflow to WordPress
Pingback: Adding a Bit of Workflow to WordPress
Pingback: Post Revision Workflow 0.2a | Ten-321 WordPress Plug-Ins
Can you edit the Subject line of the emails generated
Hi, nice idea for a plugin. I would love to have a preview option to see the page as it would look on the site instead of just reviewing in the admin area.
Am I missing something to be able to do this already?
Great Plugin, I’ve used it on a few projects – is there any support for saving meta data along with the main body content in the pipeline?
Dan,
Not within the plugin, no.
I’ve only ever messed with WordPress once to make it save meta data with revisions (and restore that meta data when a revision is restored). To do so, I had to hook into the
_wp_put_post_revisionaction and thewp_restore_post_revisionaction in order to properly save the meta data (WordPress, by default, only stores meta data with the current version of the post/page) and restore it after the revision is restored. Basically, when saving, you have to update the meta data to use the ID of the revision, rather than the ID of the post; and when restoring, you have to update the meta data again to use the ID of the post, rather than the revision’s ID.