class-custom-columns-manager.php 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. <?php
  2. //Manages custom columns in the order list.
  3. // visualized
  4. class Custom_Columns_Manager {
  5. public function __construct() {
  6. //add_filter('manage_edit-shop_order_columns', array($this, 'add_custom_shop_order_column'));
  7. add_filter('manage_woocommerce_page_wc-orders_columns', array($this, 'add_custom_shop_order_column'));
  8. //add_filter('manage_woocommerce_page_wc-orders_custom_column', array($this, 'add_custom_shop_order_column'));
  9. //add_action('manage_shop_order_posts_custom_column', array($this, 'add_custom_shop_order_column_content'), 10, 2);
  10. add_action('manage_woocommerce_page_wc-orders_custom_column', array($this, 'add_custom_shop_order_column_content'), 10, 2);
  11. }
  12. public function add_custom_shop_order_column($columns) {
  13. $new_columns = array();
  14. foreach ($columns as $column_name => $column_info) {
  15. $new_columns[$column_name] = $column_info;
  16. if ($column_name === 'order_total') {
  17. $new_columns['to_print_date'] = __('To Print Date', 'studiou-wc-ord-print-statuses');
  18. $new_columns['in_print_date'] = __('In Print Date', 'studiou-wc-ord-print-statuses');
  19. $new_columns['external_order_number'] = __('External Order Number', 'studiou-wc-ord-print-statuses');
  20. }
  21. }
  22. return $new_columns;
  23. }
  24. public function add_custom_shop_order_column_content($column, $post_id) {
  25. $order = wc_get_order($post_id);
  26. switch ($column) {
  27. case 'to_print_date':
  28. $to_print_date = $order->get_meta('to_print_date');
  29. echo $to_print_date ? date_i18n(get_option('date_format') . ' ' . get_option('time_format'), strtotime($to_print_date)) : '—';
  30. break;
  31. case 'in_print_date':
  32. $in_print_date = $order->get_meta('in_print_date');
  33. echo $in_print_date ? date_i18n(get_option('date_format') . ' ' . get_option('time_format'), strtotime($in_print_date)) : '—';
  34. break;
  35. case 'external_order_number':
  36. echo $order->get_meta('external_ref_ord_no') ?: '—';
  37. break;
  38. }
  39. }
  40. }