Using WordPress to Document & Manage Business Processes


The following is a little something I wrote over the course of a weekend using ACF with two custom post types. My goal was to use WordPress to document all of my internal processes for running my WordPress maintenance and support business. Nothing crazy elaborate but it works for me.


The main process page lists out all of the business process groups by role with the person responsible for those processes.

Screen Shot 2016-11-23 at 8.49.14 AM.png

Each process has a time estimate with a repeat schedule. Whenever a process is completed the person will log it, which adds a star to the activity log.

Screen Shot 2016-11-23 at 8.51.40 AM.png

Hovering over one of the stars shows you details of who did what and when.

screen-shot-2016-11-23-at-8-51-56-am

After a process has been logged, I’m using an ACF front-end form to supply additional details about the process.

Screen Shot 2016-11-23 at 8.53.01 AM.png

After using the process management system for a few weeks, I decided to build an activity dashboard to see the completed processes broken down by week.

Screen Shot 2016-11-23 at 8.58.36 AM.png

Use WordPress to Solve Your Own Problems

Many people just think WordPress is meant for handling websites. WordPress can do much more then just handle a website. At it’s core WordPress takes care of user authentication, authorization, roles, custom posts and custom fields. With that as a foundation there is no limit to the types of problems you can solve.

Not All Solutions Need to be Public

Building my own process management system is by design private. Most of the documentation includes real customer information and should not be public for obvious reasons. The following little piece of code at the top of a custom page template will only allow logged in administrators to view the page.

if (!is_user_logged_in() ) {
    wp_redirect ( home_url("/my-account/") );
    exit;
} else {
    $get_user_id = get_current_user_id();           // get user ID
    $get_user_data = get_userdata($get_user_id);    // get user data
    $get_roles = implode($get_user_data->roles);
    if( "administrator" != $get_roles ){            // check if role name == user role
        wp_redirect ( home_url("/my-account/") );
        exit;
    }
}