将自定义列添加到 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
是否可以在 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