将自定义列添加到 WooCommerce 3 中的管理产品列表

Add custom columns to admin products list in WooCommerce 3

是否可以在 Woocommerce 管理员产品列表中添加一列 "delivery time"?

我知道在 "Screen Options" 有一些额外的列(缩略图、价格、product_cat 等)可供选择,但 "delivery time" 不可用。

是否可以通过某种方式将其添加到列表中?


编辑:

我试图遵循 LoicTheAztecs 的回答,但我在找到正确的 meta_key 子弹时遇到了问题。

如果我在 wp_postmeta 中搜索 "delivery",我得到 0 个结果。

但有些产品已指定交货时间。 在我的产品页面上有一个文本字段 "Lieferzeit: 1–2 Wochen"(表示交货时间:1-2 周)。 如果我在整个数据库中搜索 "Wochen",我会在 wp_options 中获得 2 次匹配,在 wp_terms 中获得 6 次匹配。

数据库一般搜索:


wp_terms 数据库中的命中数:


你知道如何从这里找到正确的 meta_key 鼻涕虫吗?

这是挂钩 2 个自定义函数的方法。第一个创建带有标题的列,第二个用产品数据填充该列。但是你需要在第二个函数中设置正确对应的 meta_key 来获取数据。

代码如下:

// ADDING A CUSTOM COLUMN TITLE TO ADMIN PRODUCTS LIST
add_filter( 'manage_edit-product_columns', 'custom_product_column',11);
function custom_product_column($columns)
{
   //add columns
   $columns['delivery'] = __( 'Delivery time','woocommerce'); // title
   return $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;

    // HERE get the data from your custom field (set the correct meta key below)
    $delivery_time = get_post_meta( $product_id, '_delivery_time', true );

    switch ( $column )
    {
        case 'delivery' :
            echo $delivery_time; // display the data
            break;
    }
}

代码进入您的活动 child 主题(或主题)的 function.php 文件或任何插件文件。

已测试并有效。


How to get the correct meta_key slug:

要找到对应于 "delivery time" 的正确 meta_key slug,您需要使用 PhpMyAdmin 在您的数据库中进行搜索。您必须通过这种方式在 wp_postmeta table 中搜索 delivery 术语:

那么你会得到这样的结果(这里只有1行是假的slug):

所以现在你应该能够得到正确的 slug 名称 (比如这个假的“_delivery_date”)


相关回答(针对订单):Add custom columns to admin orders list in WooCommerce backend