WooCommerce:在管理产品列表中移动列位置

WooCommerce: Moving column position in admin product list

我使用 functions.php 文件中的挂钩在后端 WooCommerce 产品列表面板中创建了自定义列 "Cost"

我想将该列移到 "Price" 列之后:

我怎样才能做到这一点?

使用 add_filter(manage_edit-posttype_columns, yourFunction),其中 posttype 是您的 post 类型。然后按照您想要的顺序在 yourFunction 中列出您的列。我见过的最好的教程是 here.

有很多方法可以实现这一点。我选择了最简单的方法来做到这一点。您可以使用下面的代码片段更改产品 [=21= 中 "price" 列之前的 "Cost" 列位置] 后端列表:

// ADDING A CUSTOM COLUMN TITLE TO ADMIN PRODUCTS LIST AFTER "Price" COLUMN
add_filter( 'manage_edit-product_columns', 'custom_product_column',11);
function custom_product_column($columns)
{
    $new_columns = array();
    foreach( $columns as $key => $column ){
        $new_columns[$key] =  $columns[$key];
        if( $key === 'price' )
            $new_columns['cost'] = __( 'Cost','woocommerce');
    }
    return $new_columns;
}

// ADDING THE DATA FOR EACH PRODUCTS BY COLUMN (EXAMPLE)
add_action( 'manage_product_posts_custom_column' , 'custom_product_list_column_content', 10, 2 );
function custom_product_list_column_content( $column, $product_id )
{
    global $post;

    switch ( $column )
    {
        case 'cost' :
            // Get and display the value for each row
            echo get_post_meta( $product_id, '_cost', true );
            break;
    }
}

已测试并有效。