-
-
Save tazeverywhere/742fa29d9205b525b2a4e38a476248c0 to your computer and use it in GitHub Desktop.
Gravity Flow - Test scenario for custom/default sort order in status view
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
add_filter('gform_entry_meta', 'custom_entry_meta90', 12, 2); | |
function custom_entry_meta90( $entry_meta, $form_id ) { | |
$entry_meta['prioridadNUM'] = array( | |
'label' => 'Prioridad NUM', | |
'is_numeric' => true, | |
'update_entry_meta_callback' => 'update_entry_meta90', | |
'is_default_column' => true, | |
); | |
return $entry_meta; | |
} | |
function update_entry_meta90( $column_name, $entry, $form ) { | |
$value_num = ''; | |
if ( $column_name != 'prioridadNUM' ) { | |
return $value_num; | |
} | |
switch ( $form['id'] ) { | |
case '77': | |
$value = $entry[1]; | |
break; | |
case '2': | |
$value = $entry[63]; | |
break; | |
case '19': | |
$value = $entry[13]; | |
break; | |
case '11': | |
$value = $entry[37]; | |
break; | |
case '18': | |
$value = $entry[15]; | |
break; | |
default: | |
$value = ''; | |
} | |
//Setting the default value reduces DB size and the UI will show less extraneous data to user (unless 99 actually meant something) | |
switch ( $value ) { | |
case 'Urgente': | |
$value_num = 1; | |
break; | |
case 'Media': | |
$value_num = 2; | |
break; | |
case 'Baja': | |
$value_num = 3; | |
break; | |
default: | |
$value_num = ''; | |
} | |
return $value_num; | |
} | |
add_filter( 'gravityflow_columns_status_table', 'custom_column_titles3', 10, 1 ); | |
function custom_column_titles3( $columns ) { | |
$new_column = array( 'prioridadNUM' => 'Prioridad' ); | |
$pre_columns = array_slice( $columns, 0, 2 ); | |
$post_columns = array_slice( $columns, 2 ); | |
return array_merge( $pre_columns, $new_column, $post_columns ); | |
} | |
add_filter( 'gravityflow_field_value_status_table', 'custom_column_field_values44', 10, 4 ); | |
function custom_column_field_values44( $value, $form_id, $column_name, $entry ) { | |
//The same assigment logic as the update_entry_meta90 retrieval | |
if ( $column_name != 'prioridadNUM' ) { | |
return $value; | |
} | |
switch ( $form_id ) { | |
case '77': | |
$value = $entry[1]; | |
break; | |
case '2': | |
$value = $entry[63]; | |
break; | |
case '19': | |
$value = $entry[13]; | |
break; | |
case '11': | |
$value = $entry[37]; | |
break; | |
case '18': | |
$value = $entry[15]; | |
break; | |
default: | |
$value = ''; | |
} | |
switch ( $value ) { | |
case 'Urgente': | |
$value_num = 0; | |
break; | |
case 'Media': | |
$value_num = 1; | |
break; | |
case 'Baja': | |
$value_num = 2; | |
break; | |
default: | |
$value_num = ''; | |
} | |
return $value_num; | |
} | |
add_filter( 'gravityflow_sort_columns_status_table', 'custom_sort_columns', 10, 1 ); | |
function custom_sort_columns( $sortable ) { | |
//The array key must match a gravityflow_field_value_status_table filtered entry | |
//The array value must match an entry meta or field ID | |
$sortable['prioridadNUM'] = array( 'prioridadNUM', true ); | |
return $sortable; | |
} | |
add_filter( 'gravityflow_sort_criteria_status', 'sort_criteria_status' ); | |
function sort_criteria_status( $sort_criteria ) { | |
//Adjust to only have the default filter execute on your desired page(s) | |
if ( ! is_page( '94' ) ) { | |
return $sort_criteria; | |
} | |
//Ensure that if the user has clicked on a sort column header this filter won't override that | |
if ( ! rgget( 'orderby' ) && ! rgget( 'order' ) ) { | |
$sort_criteria['key'] = 'prioridadNUM'; | |
$sort_criteria['direction'] = 'DESC'; | |
$sort_criteria['is_numeric'] = true; | |
} | |
return $sort_criteria; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment