Cell format: Display timestamp value as friendly date

For example, our posts have one meta field with a timestamp and the spreadsheet shows the timestamp like this:

We can use the following code to display the values as friendly dates, so we can view, edit, and save the column using friendly dates:

add_filter('vg_sheet_editor/provider/post/update_item_meta', 'wpse_expiration_filter_cell_data_for_saving', 10, 3);
add_filter('vg_sheet_editor/provider/post/get_item_meta', 'wpse_expiration_filter_cell_data_for_readings', 10, 5);
  
function wpse_expiration_filter_cell_data_for_readings($value, $id, $key, $single, $context) {
  if ($context !== 'read' || $key !== '_expiration-date' || ! $value) {
    return $value;
  }
  
  $value = get_date_from_gmt(gmdate('Y-m-d H:i:s', $value ));
  return $value;
}

function wpse_expiration_filter_cell_data_for_saving($new_value, $id, $key) {
  global $wpdb;
  if ($key !== '_expiration-date' || ! $new_value) {
    return $new_value;
  }

  $new_value = get_gmt_from_date($new_value, 'U');
  return $new_value;
}

Result:

 

How to edit the date using a calendar

If you want something like this, you need the following code:

add_action('vg_sheet_editor/editor/before_init', 'wpse_modify_expiration_column', 999);

function wpse_modify_expiration_column($editor) {		
  $post_type = 'post';
  $meta_key = '_expiration-date';
  $editor->args['columns']->register_item($meta_key, $post_type, array(
    'formatted' => array('data' => $meta_key, 'type' => 'date', 'dateFormat' => 'YYYY-MM-DD', 'correctFormat' => true, 'datePickerConfig' => array('firstDay' => 0, 'showWeekNumber' => true, 'numberOfMonths' => 1))
  ), true);
}

Where do I add this code?

Add it in the functions.php in your theme or your child theme folder, or you can use the “code snippets” plugin to load it in wp-admin.

Close Menu