skip to Main Content

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!

2

Answers


  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 ) ) ) ) );
            }
        }
    }
    
    Login or Signup to reply.
  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/

    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search