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

tla*_*nge 3 php wordpress product custom-fields woocommerce

是否可以在 Woocommerce 管理产品列表中添加“交货时间”列?

我知道在“屏幕选项”中有一些额外的列(拇指、价格、product_cat 等)可供选择,但“交货时间”不可用。

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


编辑:

我试图按照 LoicTheAztecs 的回答进行操作,但是我在找到正确的 meta_key slug 时遇到了问题。

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

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

数据库一般搜索:

数据库搜索


wp_terms数据库中的点击次数:

wp_terms 中的点击次数


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

Loi*_*tec 8

这是使用挂钩的 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;
    }
}
Run Code Online (Sandbox Code Playgroud)

代码位于活动子主题(或主题)的 function.php 文件或任何插件文件中。

测试和工作。


如何获得正确的 meta_key slug:

要找到与“交付时间”meta_key对应的正确slug ,您需要使用 PhpMyAdmin 在您的数据库中进行搜索。您必须以这种方式在表中搜索术语:deliverywp_postmeta

在此处输入图片说明

然后你会得到这种结果(这里只有 1 行带有假 slug)

在此处输入图片说明

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


相关答案(对于订单):将自定义列添加到 WooCommerce 后端的管理订单列表