gform_form_list_count

Description

The “gform_form_list_count” filter in Gravity Forms allows the form list count array to be modified. This is useful when filtering the form count list. This filter should be used with the gform_form_list_forms hook.

Usage

add_filter( 'gform_form_list_count', 'your_function_name', 10, 1 );

Parameters

  • $form_count array

    The form count by filter name.

Examples

This example simply sets the active form count to 20.

add_filter( 'gform_form_list_count', 'change_list_count', 10, 1 );
function change_list_count( $form_count ){
  $form_count['active'] = 20;
  return $form_count;
}

This example reduces the form count by half and reflects the change in active or inactive. Trash is not counted in the total.

add_filter( 'gform_form_list_count', 'change_list_count', 10, 1 );
function change_list_count( $form_count ){
	if ( ! isset( $_GET['filter'] ) ){
		$filter = '';
	}
	else{
		$filter = $_GET['filter'];
	}

  	switch ( $filter ) {
			case 'active' :
				//remove half of forms that are active, adjust total
				$orig_count = $form_count['active'];
				$form_count['active'] =  round( $form_count['active']/2 );
				$form_count['total'] = $form_count['total'] - ( $orig_count - $form_count['active'] );
				break;
			case 'inactive' :
				//remove half of forms that are inactive, adjust total
				$orig_count = $form_count['inactive'];
				$form_count['inactive'] =  round( $form_count['inactive']/2 );
				$form_count['total'] = $form_count['total'] - ( $orig_count - $form_count['inactive'] );
				break;
			case 'trash' :
				//remove half of forms that are trash, do NOT adjust total because trash is not counted in total
				$form_count['trash'] = round( $form_count['trash']/2 );
				break;
			default :
				//all forms, remove half and adjust counts
				$orig_count = $form_count['total'];
				$active_count = $form_count['active'];
				$inactive_count = $form_count['inactive'];
				$form_count['total'] = round( $form_count['total']/2 );
				$number_to_remove = $orig_count - $form_count['total'];
				//active and inactive counts need to be modified since the form array will be removing active/inactive items
				//remove active forms first, if there are less active forms than the new form total, need to remove from inactive as well
				if ( $active_count < $number_to_remove ){
					//remove active
					$form_count['active'] = 0;
					//remove inactive
					$form_count['inactive'] = $inactive_count - ($number_to_remove - $active_count);
				}
				else{
					//just remove active
					$form_count['active'] = $active_count - $number_to_remove;
				}
	}
	return $form_count;
}

Placement

This code should be placed in the functions.php file of your active theme.

Since

This filter was added in Gravity Forms version 2.3.

Source Code

This filter is located in GF_Form_List_Table::get_views() in form_list.php.