在 WooCommerce 管理员订单列表中添加多个自定义列(备注和增值税)
Add multiple custom columns (notes and VAT) on WooCommerce admin orders list
如果订单中有客户备注,我已经插入此代码段以显示带有图标的附加列。它有效。
add_action( 'wp_enqueue_scripts', 'mini_enqueue_scripts' );
add_filter( 'manage_shop_order_posts_columns', 'woocommerce_add_order_notes_column', 99 );
function woocommerce_add_order_notes_column( $columns ) {
$columns['order_notes'] = __('Customer note', 'woocommerce');
return $columns;
}
add_action( 'manage_shop_order_posts_custom_column' , 'woocommerce_show_order_notes_column', 10, 2 );
function woocommerce_show_order_notes_column( $column_name, $order_id ) {
switch ( $column_name ) {
case 'order_notes':
$order = wc_get_order( $order_id );
$note = $order->get_customer_note();
if ( !empty($note) ) {
echo '<span class="note-on tips" data-tip="' . wc_sanitize_tooltip( $note ) . '">' . __( 'Yes', 'woocommerce' ) . '</span>';
} else {
echo '<span class="na">–</span>';
}
break;
}
}
如何在执行相同操作的一侧创建另一列(如果已在订单中输入增值税号)?
为此,我在结帐页面上有两个附加字段:“增值税号”(billing_piva
) 和“CID 号”(billing_cid
)。我想将它们放在同一列上,首先是两个 headers,例如:
- “增值税号:xxx”和“CID 号:xxx”
有什么建议吗?
要添加 2 列而不是 1 列,您实际上可以应用与添加 1 列相同的方法
可以通过不同的方式将增值税号添加到订单中,根据您的问题我了解到这是一个带有元键的自定义结帐字段:billing_piva
注意:不需要使用add_action( 'wp_enqueue_scripts', 'mini_enqueue_scripts' );
所以你得到:
// Display on order admin list (header)
function filter_manage_edit_shop_order_columns( $columns ) {
// Add columns
$columns['order_notes'] = __( 'Customer note', 'woocommerce' );
$columns['order_vat'] = __( 'VAT number', 'woocommerce' );
return $columns;
}
add_filter( 'manage_edit-shop_order_columns', 'filter_manage_edit_shop_order_columns', 10, 1 );
// Display on order admin list (populate the column)
function action_manage_shop_order_posts_custom_column( $column, $post_id ) {
// Get order
$order = wc_get_order( $post_id );
// Is a WC_Order
if ( is_a( $order, 'WC_Order' ) ) {
// Compare
switch ( $column ) {
case 'order_notes':
// Get customer note
$note = $order->get_customer_note();
// NOT empty
if ( ! empty( $note ) ) {
echo '<span class="note-on tips" data-tip="' . wc_sanitize_tooltip( $note ) . '">' . __( 'Yes', 'woocommerce' ) . '</span>';
} else {
echo '<span class="na">–</span>';
}
break;
case 'order_vat':
// Get VAT (if necessary, adjust to the correct meta key)
$vat_number = $order->get_meta( 'billing_piva' );
// NOT empty
if ( ! empty( $vat_number ) ) {
// Output
$output = '<span>' . sprintf( __( 'VAT Number: %s', 'woocommerce' ), $vat_number ) . '</span>';
// Get CID number
$cid_number = $order->get_meta( 'billing_cid' );
// NOT empty
if ( ! empty ( $cid_number ) ) {
// Concatenation
$output .= '<br><span>' . sprintf( __( 'CID Number: %s', 'woocommerce' ), $cid_number ) . '</span>';
}
// Print
echo $output;
} else {
echo '<span class="na">–</span>';
}
}
}
}
add_action( 'manage_shop_order_posts_custom_column' , 'action_manage_shop_order_posts_custom_column', 10, 2 );
如果订单中有客户备注,我已经插入此代码段以显示带有图标的附加列。它有效。
add_action( 'wp_enqueue_scripts', 'mini_enqueue_scripts' );
add_filter( 'manage_shop_order_posts_columns', 'woocommerce_add_order_notes_column', 99 );
function woocommerce_add_order_notes_column( $columns ) {
$columns['order_notes'] = __('Customer note', 'woocommerce');
return $columns;
}
add_action( 'manage_shop_order_posts_custom_column' , 'woocommerce_show_order_notes_column', 10, 2 );
function woocommerce_show_order_notes_column( $column_name, $order_id ) {
switch ( $column_name ) {
case 'order_notes':
$order = wc_get_order( $order_id );
$note = $order->get_customer_note();
if ( !empty($note) ) {
echo '<span class="note-on tips" data-tip="' . wc_sanitize_tooltip( $note ) . '">' . __( 'Yes', 'woocommerce' ) . '</span>';
} else {
echo '<span class="na">–</span>';
}
break;
}
}
如何在执行相同操作的一侧创建另一列(如果已在订单中输入增值税号)?
为此,我在结帐页面上有两个附加字段:“增值税号”(billing_piva
) 和“CID 号”(billing_cid
)。我想将它们放在同一列上,首先是两个 headers,例如:
- “增值税号:xxx”和“CID 号:xxx”
有什么建议吗?
要添加 2 列而不是 1 列,您实际上可以应用与添加 1 列相同的方法
可以通过不同的方式将增值税号添加到订单中,根据您的问题我了解到这是一个带有元键的自定义结帐字段:billing_piva
注意:不需要使用add_action( 'wp_enqueue_scripts', 'mini_enqueue_scripts' );
所以你得到:
// Display on order admin list (header)
function filter_manage_edit_shop_order_columns( $columns ) {
// Add columns
$columns['order_notes'] = __( 'Customer note', 'woocommerce' );
$columns['order_vat'] = __( 'VAT number', 'woocommerce' );
return $columns;
}
add_filter( 'manage_edit-shop_order_columns', 'filter_manage_edit_shop_order_columns', 10, 1 );
// Display on order admin list (populate the column)
function action_manage_shop_order_posts_custom_column( $column, $post_id ) {
// Get order
$order = wc_get_order( $post_id );
// Is a WC_Order
if ( is_a( $order, 'WC_Order' ) ) {
// Compare
switch ( $column ) {
case 'order_notes':
// Get customer note
$note = $order->get_customer_note();
// NOT empty
if ( ! empty( $note ) ) {
echo '<span class="note-on tips" data-tip="' . wc_sanitize_tooltip( $note ) . '">' . __( 'Yes', 'woocommerce' ) . '</span>';
} else {
echo '<span class="na">–</span>';
}
break;
case 'order_vat':
// Get VAT (if necessary, adjust to the correct meta key)
$vat_number = $order->get_meta( 'billing_piva' );
// NOT empty
if ( ! empty( $vat_number ) ) {
// Output
$output = '<span>' . sprintf( __( 'VAT Number: %s', 'woocommerce' ), $vat_number ) . '</span>';
// Get CID number
$cid_number = $order->get_meta( 'billing_cid' );
// NOT empty
if ( ! empty ( $cid_number ) ) {
// Concatenation
$output .= '<br><span>' . sprintf( __( 'CID Number: %s', 'woocommerce' ), $cid_number ) . '</span>';
}
// Print
echo $output;
} else {
echo '<span class="na">–</span>';
}
}
}
}
add_action( 'manage_shop_order_posts_custom_column' , 'action_manage_shop_order_posts_custom_column', 10, 2 );