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数据库中的点击次数:
你知道如何从这里找到正确的 meta_key slug 吗?
这是使用挂钩的 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 后端的管理订单列表