Formato de Celda: Mostrar el Valor de la Marca de Tiempo como Fecha Amistosa

Por ejemplo, nuestros mensajes tienen un campo meta con una marca de tiempo y la hoja de cálculo muestra la marca de tiempo así:

formato-celda-mostrar-valor-marca-tiempo-fecha-amistosa

Podemos usar el siguiente código para mostrar los valores como fechas amistosas, para que podamos ver, editar y guardar la columna usando fechas amistosas:

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;
}

Resultado:

formato-celda-mostrar-valor-marca-tiempo-fecha-amistosa

 

Cómo editar la fecha utilizando un calendario

Si quieres algo así, necesitas el siguiente código:

formato-celda-mostrar-valor-marca-tiempo-fecha-amistosa

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);
}

¿Dónde añado este código?

Añádelo en functions.php en tu tema o en la carpeta de temas, o puedes usar el plugin “code snippets” para cargarlo en wp-admin.