-
General
-
- How to Find the Latest Versions of PublishPress Plugins
- Changelogs for Free PublishPress Plugins
- Changelogs for PublishPress Authors
- Changelogs for PublishPress Blocks
- Changelogs for PublishPress Capabilities
- Changelogs for PublishPress Checklists
- Changelogs for PublishPress Future
- Changelogs for PublishPress Permissions
- Changelogs for PublishPress
- Changelogs for PublishPress Revisions
- Changelogs for PublishPress Series
-
PublishPress Authors
-
- Legacy: How to Create Custom Author Layouts
- Legacy: Add Data in Custom Author Layouts
- Legacy: Using Conditionals in Custom Author Layouts
- Legacy: Add CSS in Custom Author Layouts
- Legacy: The Loop Object in PublishPress Authors
- Legacy: Add External Data to PublishPress Authors
- Legacy: Modify the Author Avatar
- Legacy: Where are Author Layouts Stored in the Database?
- Legacy: Add Social Links to Author Profiles
- Deprecated Functions in PublishPress Authors
-
PublishPress Blocks
-
- Accordion Block
- Button Block
- Columns Block
- Contact Form Block
- Content Display Block
- Countdown Block
- Count Up Block
- Icon Block
- Image Block
- Images Slider Block
- Info Box Block
- Feature List block
- List Block
- Login & Register Block
- Map Block
- Newsletter Block
- Pricing Table block
- Search Bar Block
- Social Links Block
- Table of Contents Block
- Table Block
- Tabs Block
- Testimonial Block
- Video Block
- Woo Products Block
- Core Blocks
- Layout Options in PublishPress Blocks
-
PublishPress Capabilities
-
- The Admin Menus Screen
- Control Access to WooCommerce Admin Menus
- Control Access to Contact Form 7 Admin Menus
- Control Access to Yoast SEO Admin Menus
- Control Access to Elementor Admin Menus
- Control Access to Jetpack Admin Menus
- Control Access to WPForms Admin Menus
- Control Access to The Events Calendar Admin Menus
- Control Access to Gravity Forms Admin Menus
- Troubleshooting the Admin Menus Screen
-
PublishPress Checklists
-
- Number of characters in title
- Numbers of words in content
- Number of categories
- Number of tags or taxonomy terms
- Number of characters in excerpt
- Number of internal links in content
- Number of external links in content
- All links use a valid format
- ALT Text for all images
- Featured image
- Latin characters in permalink
- Approved by a user in this role
- Yoast SEO tasks
- WooCommerce product tasks
- Featured image height and width
-
PublishPress Future
- Introduction to PublishPress Future
- Ways to Expire Posts
- Defaults for Post Types
- PublishPress Future Email Notifications
- Shortcodes to Show Expiration Date
- Automatic Footer Display for Expiry Dates
- Scheduling in PublishPress Future: Cron Jobs
- Technical Details for PublishPress Future
- Troubleshooting in PublishPress Future
-
PublishPress Permissions
-
- Control Access to Custom Post Types
- Control Viewing Access to Specific Categories
- Allow Editing of Specific Pages
- Force Users to Create Posts in a Category or Parent Page
- Block Users from Seeing Non-Editable Posts
- Control Viewing Permissions for WordPress Content
- Control Editing Permissions for WordPress Content
- Block Access to WordPress Category and Tag Archives
- Configure Who Can See Other People's Posts
-
- Developer Information for Permission Groups
- PublishPress Permissions Database Tables and Settings
- pp_create_group()
- pp_delete_group()
- pp_get_group()
- pp_get_group_by_name()
- pp_get_metagroup
- pp_get_groups()
- pp_get_group_members()
- pp_get_groups_for_user()
- pp_add_group_user()
- pp_remove_group_user()
- pp_update_group_user()
- ppc_get_roles()
- ppc_assign_roles()
- ppc_get_exceptions()
- ppc_assign_exceptions()
- pp_manage_settings
-
- How to Deactivate PublishPress Permissions
- edit_own_attachments
- list_others_unattached_files
- pp_administer_content
- pp_assign_roles
- pp_associate_any_page
- pp_create_groups
- pp_define_moderation
- pp_define_post_status
- pp_define_privacy
- pp_delete_groups
- pp_edit_groups
- pp_force_quick_edit
- pp_list_all_files
- pp_manage_members
- pp_manage_settings
- pp_moderate_any
- pp_set_associate_exceptions
- pp_set_edit_exceptions
- pp_set_read_exceptions
- pp_set_term_assign_exceptions
- pp_set_term_associate_exceptions
- pp_set_term_manage_exceptions
- pp_unfiltered
- set_posts_status
-
PublishPress Planner
-
- Getting Started With Notifications in PublishPress Planner
- Understanding the PublishPress Planner Notification Options
- Get PublishPress Planner Notifications by Email or Slack
- How to Customize PublishPress Planner Notifications With Shortcodes
- How to Use Reminder Notifications
- Notify Me: Manually Add Yourself to Notifications
- The PublishPress Planner Notifications Log
- Hooks and Filters for Notifications
- Troubleshooting Email Notifications in PublishPress Planner
-
PublishPress Revisions
-
- Does My Plugin Support PublishPress Revisions?
- A List of Some Plugins Supported by PublishPress Revisions
- PublishPress Revisions Pro and The Events Calendar
- PublishPress Revisions Pro and WooCommerce
- PublishPress Revisions Pro and Advanced Custom Fields
- PublishPress Revisions Pro and WPML
- PublishPress Revisions Pro and Custom Post Type UI
- PublishPress Revisions Pro and Yoast SEO
- PublishPress Revisions Pro and the PODS Framework
- Submit and Moderate Revisions with the Divi Theme
- Create Revisions Using an API
- PublishPress Revisions Pro and Elementor
- PublishPress Revisions Pro and Beaver Builder
-
PublishPress Series
-
How-to Guides
-
- A WordPress Editorial Workflow for Writing, Reviewing and Publishing
- A WordPress Workflow for Editing and Reviewing
- Create a Workflow for University Departments in WordPress with PublishPress
- Create a Multi-Step Workflow in WordPress
- How to Create a Publishing Workflow for Authors in WordPress
- How to Get 2 People to Approve Content in WordPress
-
- How to Allow WordPress Admin Area Access for WooCommerce Users
- How to Manage Permissions for WooCommerce Products
- Allow WooCommerce Users to Edit Only One Product
- How to Approve and Schedule Changes to WooCommerce Products
- WooCommerce Users Can Edit Products Only in Some Categories
- How Create WooCommerce Users Who Can Only View and Edit Products
- How to Create and Schedule Revisions for WooCommerce Products
- How to Control Who Can Duplicate WooCommerce Products
- Create WooCommerce Users Who Can Only View Reports
- How to Control Who Can Access WooCommerce Coupons
- How to Create WooCommerce Users Who Can Only View and Edit Orders
- How to Manage Permissions for WooCommerce Orders
- How to Control Permissions for WooCommerce Refunds
- How to Create Checklists with WooCommerce
-
-
WordPress Permissions
-
- activate_plugins
- add_users
- create_users
- delete_others_pages
- delete_others_posts
- delete_pages
- delete_posts
- delete_plugins
- delete_private_pages
- delete_private_posts
- delete_published_pages
- delete_published_posts
- delete_themes
- delete_users
- edit_dashboard
- edit_others_pages
- edit_others_posts
- edit_pages
- edit_plugins
- edit_posts
- edit_private_pages
- edit_private_posts
- edit_published_pages
- edit_published_posts
- edit_theme_options
- edit_themes
- edit_users
- erase_others_personal_data
- export
- export_others_personal_data
- import
- install_plugins
- install_themes
- list_users
- manage_categories
- manage_links
- manage_options
- manage_privacy_options
- moderate_comments
- promote_users
- read
- read_private_pages
- read_private_posts
- remove_users
- switch_themes
- unfiltered_html
- unfiltered_upload
- update_core
- update_plugins
- update_themes
- upload_files
-
- view_woocommerce_reports
- assign_product_terms
- assign_shop_coupon_terms
- assign_shop_order_terms
- delete_product_terms
- delete_shop_coupon_terms
- delete_shop_order_terms
- edit_product_terms
- edit_shop_coupon_terms
- edit_shop_order_terms
- manage_product_terms
- manage_shop_coupon_terms
- manage_shop_order_terms
- manage_woocommerce
A WordPress Workflow for Editing and Reviewing
A PublishPress user asked us if it was possible to set up this workflow:
- One user role can edit or add content, but not publish.
- Another user role can review the content and change the status to “Reviewed”. However, they are not able to publish content.
- An admin user can approve or publish the content.
The answer to this is “Yes, with the PublishPress plugins”. I'll show you how to set up this workflow using two plugins:
Before we start this process, make sure you have both of these plugins installed.
Step #1. The Content Editor
Our first task is to create a “Content Editor” role that can edit or add content, but not publish. We will copy the “Contributor” role because that has permissions very close to our desired goal.
- Go to “Capabilities” in your WordPress admin area.
- Using the dropdown in the top-left corner, choose “Contributor”.
- Click “Load”.
- Enter “Content Editor”.
- Click “Copy”.

- In the center of the screen, check the three boxes shown below. We will leave “Publish” empty because we don't want these users to publish content.

I would recommend that you now create a user in the “Content Editor” role and test their account. This is easier to do with the User Switching plugin installed.
What should you see? The “Content Editor” users can edit any post. However, if they try to publish a new post, they will see the image below. They will only be able to leave a post as “Submit for Review“.

Step #2. The Reviewer
Our next step is to create a “Reviewer” role that can review content and change the status to “Reviewed”. However, the reviewer is not able to publish content.
First, we're going to create a new status called “Reviewed”.
- Go to PublishPress > Settings.
- Click “Statuses”.
- Click “Add New”.
- Create a new status called “Reviewed”.

- Drag-and-drop the new status so that it appears after “Pending Review”:

- Choose “Content Editor”.
- Click “Load”.
- Enter “Reviewer” in the “Create New Role” box.
- Click “Create”.

- Make sure you have the “Control Custom Statuses” box checked.

In the center of the screen, you can now customize permissions for statuses.
- Use the “Select Role to View / Edit” box to load “Content Editor”.
- Set these permissions for custom statuses:

- Use the “Select Role to View / Edit” box to load “Reviewer”.
- Set these permissions for custom statuses:

As before, it's now time to create and test a new user in this “Reviewer” role. You are looking for two things:
- They can not publish. Just like the “Content Editor”, they will not be able to publish.
- When they are editing content,they will be able to move content from “Pending Review” to “Reviewed”.

Step #3. The Admin
You can use a normal Administrator account for the final step. These users can approve or publish the content. You could also use an “Editor” user.
Step #4. Test the Workflow
Log into your site and test the process:
- The “Content Editor” can edit or add content. They can move content to the “Pending Review” status.
- The “Reviewer” can review the content and change the status to “Reviewed”.
- The “Admin” can approve or publish the content.
More options with PublishPress
The PublishPress plugins are flexible enough that you can create many variations on this set up.
- If you need to assign more than one author to work on a post, we recommend the PublishPress Authors plugin.
- To block Content Editors from seeing the ideas from other users, try this technique.
- To send updates to Content Editors, Reviewers and Admins to get updates as content moves through these stages, the PublishPress Pro plugin can send email and Slack notifications.
- If you want users to discuss the post while working on them, you can use the Editorial Comments feature in PublishPress Pro.
Your site may have different needs. You can modify this workflow to meet your needs. Contact us if you need any help at all.