如何在WooCommerce后台产品列表中显示Shipping Class列
在WooCommerce后台产品列表添加配送类别(Shipping Class)列
你只需将原代码中的可见性相关逻辑替换为配送类别的获取逻辑即可,以下是修改后的完整代码:
/** * @snippet 新增配送类别列 @ WooCommerce 后台产品列表 * @compatible WooCommerce 5+ */ add_filter( 'manage_edit-product_columns', 'add_shipping_class_product_column', 9999 ); function add_shipping_class_product_column( $columns ){ $columns['shipping_class'] = '配送类别'; // 可根据需求修改为英文"Shipping Class" return $columns; } add_action( 'manage_product_posts_custom_column', 'display_shipping_class_product_column_content', 10, 2 ); function display_shipping_class_product_column_content( $column, $product_id ){ if ( $column == 'shipping_class' ) { $product = wc_get_product( $product_id ); $shipping_class_slug = $product->get_shipping_class(); if ( !empty( $shipping_class_slug ) ) { // 通过配送类别slug获取对应术语名称 $shipping_class = get_term_by( 'slug', $shipping_class_slug, 'product_shipping_class' ); echo $shipping_class ? $shipping_class->name : '无效配送类别'; } else { echo '未设置'; } } }
代码说明:
- 函数
add_shipping_class_product_column负责在产品列表的列集合中新增“配送类别”列; - 函数
display_shipping_class_product_column_content负责渲染列内容:- 通过
wc_get_product获取目标产品对象; - 调用
get_shipping_class获取配送类别的标识slug; - 若存在有效slug,通过
get_term_by查询对应的配送类别名称并显示;未设置则显示“未设置”。
- 通过
将这段代码添加到主题functions.php文件或自定义插件中,即可在后台“所有产品”页面看到新增的配送类别列。
内容的提问来源于stack exchange,提问作者Arthor
相关产品推荐
相关产品推荐

