在 WooCommerce 我的帐户订单列表中添加发送给客户的管理员订单备注
Add Admin order notes sent to customer in WooCommerce My Account Orders list
基于 答案代码,我尝试添加以下代码以在我已将 manage_edit-shop_order_columns
更改为 [=12 的 WooCommerce 我的帐户订单列表中创建一个新列,但未成功=] 钩子:
// Add custom column on admin orders list page
add_filter( 'woocommerce_my_account_my_orders_columns', 'add_order_notes_column' );
function add_order_notes_column( $columns ) {
$columns['order_notes'] = 'Order Notes';
return $columns;
}
// CSS styles
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 );
}
// Admin orders list custom column displayed content
add_action( 'woocommerce_my_account_my_orders_columns', 'add_order_notes_content' );
function add_order_notes_content( $column ) {
global $post, $the_order;
if( 'order_notes' !== $column )
return;
$order = is_a($the_order, 'WC_Order') ? $the_order : wc_get_order( $post->ID );
$notes = wc_get_order_notes( array(
'order_id' => $order->get_id(),
'order_by' => 'date_created',
'order' => 'ASC',
) );
if( ! empty($notes) ) {
echo '<ul>';
foreach( $notes as $note ) {
if( $note->customer_note && 'system' !== $note->added_by ) {
echo '<li class="order_customer_note">' . sprintf( __('%s by %s <br> %s:'),
date_i18n( 'm/d/y H:i', strtotime( $note->date_created ) ),
$note->added_by,
$note->content
) . '</li>';
}
}
echo '</ul>';
}
}
我希望本专栏的内容相同,但我希望标题显示“下载”。
更新:这是我希望专栏所在位置的屏幕截图:
你的代码有很多错误...要在我的帐户订单中将管理员发送的客户订单备注显示为新列,请改用以下内容:
// Add custom column on admin orders list page
add_filter( 'woocommerce_my_account_my_orders_columns', 'add_myaccount_admin_order_notes_column' );
function add_myaccount_admin_order_notes_column( $columns ) {
$column_actions = $columns['order-actions'];
unset($columns['order-actions']);
$columns['admin-notes'] = __('Admin Notes', 'woocommerce');
$columns['order-actions'] = $column_actions;
return $columns;
}
// CSS styles
add_action( 'wp_head', 'myaccount_admin_order_notes_inline_style', 100 );
function myaccount_admin_order_notes_inline_style() {
if( is_account_page() && is_wc_endpoint_url('orders') ) :
?><style>ul.order-note-item {list-style:none; margin:0;} ul.order-note-item > li { margin:0 0 6px;}</style><?php
endif;
}
// Admin orders list custom column displayed content
add_action( 'woocommerce_my_account_my_orders_column_admin-notes', 'add_myaccount_admin_order_notes_content' );
function add_myaccount_admin_order_notes_content( $order ) {
$notes = wc_get_order_notes( array(
'order_id' => $order->get_id(),
'order_by' => 'date_created',
'order' => 'ASC',
) );
if( ! empty($notes) ) {
$output = [];
foreach( $notes as $note ) {
if( $note->customer_note && 'system' !== $note->added_by ) {
$output[] = sprintf( __('%s <br> %s'),
date_i18n( 'm/d/y H:i', strtotime( $note->date_created ) ),
$note->content
);
}
}
echo '<ul class="order-note-item"><li>'. implode('</li><li>', $output) .'</li></ul>';
}
}
代码进入活动子主题(或活动主题)的 functions.php 文件。已测试并有效。
基于 manage_edit-shop_order_columns
更改为 [=12 的 WooCommerce 我的帐户订单列表中创建一个新列,但未成功=] 钩子:
// Add custom column on admin orders list page
add_filter( 'woocommerce_my_account_my_orders_columns', 'add_order_notes_column' );
function add_order_notes_column( $columns ) {
$columns['order_notes'] = 'Order Notes';
return $columns;
}
// CSS styles
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 );
}
// Admin orders list custom column displayed content
add_action( 'woocommerce_my_account_my_orders_columns', 'add_order_notes_content' );
function add_order_notes_content( $column ) {
global $post, $the_order;
if( 'order_notes' !== $column )
return;
$order = is_a($the_order, 'WC_Order') ? $the_order : wc_get_order( $post->ID );
$notes = wc_get_order_notes( array(
'order_id' => $order->get_id(),
'order_by' => 'date_created',
'order' => 'ASC',
) );
if( ! empty($notes) ) {
echo '<ul>';
foreach( $notes as $note ) {
if( $note->customer_note && 'system' !== $note->added_by ) {
echo '<li class="order_customer_note">' . sprintf( __('%s by %s <br> %s:'),
date_i18n( 'm/d/y H:i', strtotime( $note->date_created ) ),
$note->added_by,
$note->content
) . '</li>';
}
}
echo '</ul>';
}
}
我希望本专栏的内容相同,但我希望标题显示“下载”。
更新:这是我希望专栏所在位置的屏幕截图:
你的代码有很多错误...要在我的帐户订单中将管理员发送的客户订单备注显示为新列,请改用以下内容:
// Add custom column on admin orders list page
add_filter( 'woocommerce_my_account_my_orders_columns', 'add_myaccount_admin_order_notes_column' );
function add_myaccount_admin_order_notes_column( $columns ) {
$column_actions = $columns['order-actions'];
unset($columns['order-actions']);
$columns['admin-notes'] = __('Admin Notes', 'woocommerce');
$columns['order-actions'] = $column_actions;
return $columns;
}
// CSS styles
add_action( 'wp_head', 'myaccount_admin_order_notes_inline_style', 100 );
function myaccount_admin_order_notes_inline_style() {
if( is_account_page() && is_wc_endpoint_url('orders') ) :
?><style>ul.order-note-item {list-style:none; margin:0;} ul.order-note-item > li { margin:0 0 6px;}</style><?php
endif;
}
// Admin orders list custom column displayed content
add_action( 'woocommerce_my_account_my_orders_column_admin-notes', 'add_myaccount_admin_order_notes_content' );
function add_myaccount_admin_order_notes_content( $order ) {
$notes = wc_get_order_notes( array(
'order_id' => $order->get_id(),
'order_by' => 'date_created',
'order' => 'ASC',
) );
if( ! empty($notes) ) {
$output = [];
foreach( $notes as $note ) {
if( $note->customer_note && 'system' !== $note->added_by ) {
$output[] = sprintf( __('%s <br> %s'),
date_i18n( 'm/d/y H:i', strtotime( $note->date_created ) ),
$note->content
);
}
}
echo '<ul class="order-note-item"><li>'. implode('</li><li>', $output) .'</li></ul>';
}
}
代码进入活动子主题(或活动主题)的 functions.php 文件。已测试并有效。