Skip to content

Instantly share code, notes, and snippets.

@Idealien
Created December 5, 2020 17:35
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save Idealien/62c6cc2eece99e924bb6d4afd48c7452 to your computer and use it in GitHub Desktop.
Save Idealien/62c6cc2eece99e924bb6d4afd48c7452 to your computer and use it in GitHub Desktop.
Gravity Flow - Test scenario for custom/default sort order in status view
<?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