在Woocommerce中,我为管理订单列表页面创建了一个自定义列。
<?php
add_filter( 'manage_edit-shop_order_columns', 'MY_COLUMNS_FUNCTION' );
function MY_COLUMNS_FUNCTION( $columns ) {
$new_columns = ( is_array( $columns ) ) ? $columns : array();
unset( $new_columns[ 'order_actions' ] );
$new_columns['MY_COLUMN_ID_1'] = 'MY_COLUMN_1_TITLE';
$new_columns[ 'order_actions' ] = $columns[ 'order_actions' ];
return $new_columns;
}
然后,此列的自定义字段
add_action( 'manage_shop_order_posts_custom_column', 'MY_COLUMNS_VALUES_FUNCTION', 2 );
function MY_COLUMNS_VALUES_FUNCTION( $column ) {
global $post;
$data = get_post_meta( $post->ID );
if ( $column == 'MY_COLUMN_ID_1' ) {
echo ( isset( $data[ 'MY_COLUMN_1_POST_META_ID' ] ) ? $data[ 'MY_COLUMN_1_POST_META_ID' ] : '' );
}
}
但我不知道如何通过WooCommerce API将字符串发布到特定的自定义字段?
答案 0 :(得分:1)
以下是如何在管理订单屏幕中添加自定义列的示例。它会在“操作”列之后添加您的列,并使用您的自定义字段数据填充它。您需要使用自己的字段名称替换“custom_column”值。
float
答案 1 :(得分:1)
我会稍微调整安德鲁的答案,以便更多地开始使用订单对象,并减少对后期元素的依赖。我非常确定WooCommerce最终会将它的核心元素移动到自定义表格中。
var ids = fields.Where(s => s.Key.Contains("[ID]")).Select(s => int.Parse(s.Value));