Add New Project Status

By default CRM ships with 5 predefined statuses, Not Started, In Progress, On Hold, Cancelled, Finished but you can inject new statuses with simple action hook to fit for your needs.

The statuses Not Started and Finished are core statuses and should remain untouched in order everything to works well.

We assume that you have some basic knowledge of reading php code for this article but wont be that hard if you don’t have. You can just copy and paste the code and adjust the keys for your needs (see below keys explanation).

In this example you will add 1 new project status with name Planning

In application/helpers create file my_functions_helper.php and add the following code:

<?php

hooks()->add_filter('before_get_project_statuses','my_add_custom_project_status');

function my_add_custom_project_status($current_statuses){
    // Push new status to the current statuses
    $current_statuses[] = array(
           'id'=>50, // new status with id 50
           'color'=>'#989898',
           'name'=>'Planning',
           'order'=>10,
           'filter_default'=>true, // true or false
        );
    // Return the statuses
    return $current_statuses;
}
The ID for each status must to be unique.
  • id – The id of the project status, its recommended to add higher id number to prevent overlapping the default system id’s for the project statuses. Eq now currently there is projects statuses with id 1, 2, 3, 4 and 5 and in a future if new default project statuses is added with an id 6 and you already have injected your own status with id 6 can cause issues. Its not recommended to change the ID after there is project that are using the status id.
  • color – Color for this status in hex format.
  • name – The name of the status that will be displayed to users.
  • order – The order of the status.
  • filter_default – This option is used if you want to exclude the projects that are using this status by default to be included in the lists tables. Eq if this option is false when you access the projects lists area by default the projects that are using to this status wont be shown and you will neeed manually to use the filters to include in the table.

After you adjust the code to fit for your needs save the file my_functions_helper.php and you will be able to see your new project status.

Did you find this article useful?

  • New Project

    To create new project go to Projects from the aside menu and click New Project on the top left butto...
  • Timesheets

    Project timesheets are all started timers for tasks related to specific project. To view all project...
  • Invoicing Project

    Invoicing project is recomended to do only from the project area via the Invoice Project button on t...
  • Disallow project members to see all project tasks

    By the default all project related tasks are visible to all project members.If you want only to show...
  • Pin Projects

    If you are working on specific projects everyday and you need to access them everyday there is an op...