'Private Notes In Woocommerce Order List

We add our own production numbers in private notes and it would be really handy if we could show these private notes on the order list under a new column, searched all over the internet but none of the codes have worked.

Many thanks!



Solution 1:[1]

Try to add this code snippet in function.php file:

add_action( 'wpo_wcol_custom_row', 'wpo_wcol_order_notes', 10, 1 );
function wpo_wcol_order_notes ( $order_id ) {
    $notes = wc_get_order_notes( array(
        'order_id' => $order_id,
        'type'     => 'customer', // use 'internal' for admin and system notes, empty for all
    ) );

    if ( $notes ) {
        foreach( $notes as $key => $note ) {
            // system notes can be identified by $note->added_by == 'system'
            printf( '<div class="note_content">%s</div>', wpautop( wptexturize( wp_kses_post( make_clickable( $note->content ) ) ) ) );
        }
    }
}

Solution 2:[2]

Here you have code to display private notes in Woocommerce order list:

  // WooCommerce - Add order notes column to orders list
  // Code goes in functions.php for your child theme
  // not tested in a PHP snippet plugin
  
  // Add column "Order Notes" on the orders page
  add_filter( 'manage_edit-shop_order_columns', 'add_order_notes_column' );
  function add_order_notes_column( $columns ) {
    $new_columns = ( is_array( $columns ) ) ? $columns : array();
    $new_columns['order_notes'] = 'Order Notes';
    return $new_columns;
  }
  
  add_action( 'admin_print_styles', 'add_order_notes_column_style' );
  function add_order_notes_column_style() {
    $css = '.post-type-shop_order table.widefat.fixed { table-layout: auto; width: 100%; }';
    $css .= 'table.wp-list-table .column-order_notes { min-width: 280px; text-align: left; }';
    $css .= '.column-order_notes ul { margin: 0 0 0 18px; list-style-type: disc; }';
    $css .= '.order_customer_note { color: #ee0000; }'; // red
    $css .= '.order_private_note { color: #0000ee; }'; // blue
    wp_add_inline_style( 'woocommerce_admin_styles', $css );
  }
  
  // Add order notes to the "Order Notes" column
  add_action( 'manage_shop_order_posts_custom_column', 'add_order_notes_content' );
  function add_order_notes_content( $column ) {
    if( $column != 'order_notes' ) return;      
    global $post, $the_order;
    if( empty( $the_order ) || $the_order->get_id() != $post->ID ) {
      $the_order = wc_get_order( $post->ID );
    }    
    $args = array();
    $args['order_id'] = $the_order->get_id();
    $args['order_by'] = 'date_created';
    $args['order'] = 'ASC';
    $notes = wc_get_order_notes( $args );
    if( $notes ) {
      print '<ul>';
      foreach( $notes as $note ) {
        if( $note->customer_note ) {
          print '<li class="order_customer_note">';
        } else {
          print '<li class="order_private_note">';
        }
        $date = date( 'd/m/y H:i', strtotime( $note->date_created ) );
        print $date.' by '.$note->added_by.'<br>'.$note->content.'</li>';
      }
      print '</ul>';
    }
  } // end function

Just copy and paste the code into your functions.php file.

Credits: https://wordpress.org/support/topic/display-private-note-column-on-woocommerce-order-page/

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Neal Developer
Solution 2 S1awek