如何在woocommerce管理产品列表中添加/删除列

lil*_*uit 19 php wordpress product backend woocommerce

我想在查看产品列表时在管理员中自定义Woocommerce中的列.

具体来说,我想删除一些列,并添加几个自定义字段列.

我尝试了在线列出的许多解决方案,我可以删除列并添加新的列,如下所示:

add_filter( 'manage_edit-product_columns', 'show_product_order',15 );
function show_product_order($columns){

   //remove column
   unset( $columns['tags'] );

   //add column
   $columns['offercode'] = __( 'Offer Code'); 

   return $columns;
}
Run Code Online (Sandbox Code Playgroud)

但是,如何使用实际产品数据填充新列(在本例中,称为"offercode"的自定义字段)?

eng*_*len 30

过滤器manage_edit-{post_type}_columns仅用于实际添加列.要控制每个帖子(产品)列中显示的内容,您可以使用该manage_{post_type}_posts_custom_column操作.为每个帖子的每个自定义列调用此操作,它传递两个参数:$column$postid.

使用此操作非常简单,您可以找到一个示例来显示以下自定义字段"offercode":

add_action( 'manage_product_posts_custom_column', 'wpso23858236_product_column_offercode', 10, 2 );

function wpso23858236_product_column_offercode( $column, $postid ) {
    if ( $column == 'offercode' ) {
        echo get_post_meta( $postid, 'offercode', true );
    }
}
Run Code Online (Sandbox Code Playgroud)

您还可以使用插件来控制此行为,例如管理列.


gui*_*br_ 10

这个表视图被许多插件和wordpress本身使用.您必须检查列名称.$ columns ['tags']是Wordpress Post View中的标签,而不是Woocommerce!

以下是Woocommerce使用的一些$列的列表:

$columns['cb']  
$columns['thumb']
$columns['name'] 
$columns['sku'] 
$columns['is_in_stock']
$columns['price']
$columns['product_cat'] 
$columns['product_tag']
$columns['featured']
$columns['product_type']
$columns['date']
Run Code Online (Sandbox Code Playgroud)

这是应用这些删除的正确过滤器.

add_filter( 'manage_edit-product_columns', 'change_columns_filter',10, 1 );
function change_columns_filter( $columns ) {
unset($columns['product_tag']);
unset($columns['sku']);
unset($columns['featured']);
unset($columns['product_type']);
return $columns;
}
Run Code Online (Sandbox Code Playgroud)