Last active
June 15, 2020 05:49
-
-
Save neltseng/03678edc20f5496454056f6fe2012c4f to your computer and use it in GitHub Desktop.
Add customer order notes to order list for WooCommerce v3.3
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Add customer order notes for order list with v3.3 | |
add_filter( 'manage_edit-shop_order_columns', 'custom_shop_order_column', 20 ); | |
function custom_shop_order_column( $columns ) | |
{ | |
$ordered_columns = array(); | |
foreach( $columns as $key => $column ){ | |
$ordered_columns[$key] = $column; | |
if( 'order_date' == $key ){ | |
$ordered_columns['order_notes'] = '訂單備註'; | |
} | |
} | |
return $ordered_columns; | |
} | |
add_action( 'manage_shop_order_posts_custom_column' , 'custom_shop_order_list_column_content', 10, 1 ); | |
function custom_shop_order_list_column_content( $column ) | |
{ | |
global $post, $the_order; | |
$customer_note = $post->post_excerpt; | |
if ( $column == 'order_notes' ) { | |
if ( $the_order->get_customer_note() ) { | |
echo '<span class="note-on customer tips" data-tip="' . wc_sanitize_tooltip( $the_order->get_customer_note() ) . '">' . __( 'Yes', 'woocommerce' ) . '</span>'; | |
} | |
if ( $post->comment_count ) { | |
$latest_notes = wc_get_order_notes( array( | |
'order_id' => $post->ID, | |
'limit' => 1, | |
'orderby' => 'date_created_gmt', | |
) ); | |
$latest_note = current( $latest_notes ); | |
if ( isset( $latest_note->content ) && 1 == $post->comment_count ) { | |
echo '<span class="note-on tips" data-tip="' . wc_sanitize_tooltip( $latest_note->content ) . '">' . __( 'Yes', 'woocommerce' ) . '</span>'; | |
} elseif ( isset( $latest_note->content ) ) { | |
// translators: %d: notes count | |
echo '<span class="note-on tips" data-tip="' . wc_sanitize_tooltip( $latest_note->content . '<br/><small style="display:block">' . sprintf( _n( 'Plus %d other note', 'Plus %d other notes', ( $post->comment_count - 1 ), 'woocommerce' ), $post->comment_count - 1 ) . '</small>' ) . '">' . __( 'Yes', 'woocommerce' ) . '</span>'; | |
} else { | |
// translators: %d: notes count | |
echo '<span class="note-on tips" data-tip="' . wc_sanitize_tooltip( sprintf( _n( '%d note', '%d notes', $post->comment_count, 'woocommerce' ), $post->comment_count ) ) . '">' . __( 'Yes', 'woocommerce' ) . '</span>'; | |
} | |
} | |
} | |
} | |
// Set Here the WooCommerce icon for your action button | |
add_action( 'admin_head', 'add_custom_order_status_actions_button_css' ); | |
function add_custom_order_status_actions_button_css() { | |
echo '<style> | |
td.order_notes > .note-on { display: inline-block !important;} | |
span.note-on.customer { margin-right: 4px !important;} | |
span.note-on.customer::after { font-family: woocommerce !important; content: "\e026" !important;} | |
</style>'; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment