'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 |