doushan1850
2018-10-06 23:05
浏览 205
已采纳

在Woocommerce 3中为管理产品列表添加自定义列产品可见性

I am trying to add a custom column to admin product list with the Catalog Visibility value of the products (basically, I need to know easier which is Hidden and which is not).

My code so far for my child theme's functions.php:

add_filter( 'manage_edit-product_columns', 'custom_product_column', 10);
function custom_product_column($columns){


 $columns['visibility'] = __( 'Visibility','woocommerce');
 return $columns;
}

    add_action( 'manage_product_posts_custom_column', 'custom_column_content', 10, 2 );

    function custom_product_list_column_content( $column, $product_id ){

    global $post;

$isitvisible = get_post_meta( $product_id, 'product_visibility', true );

switch ( $column ){

    case 'visibility' :
        echo $isitvisible;
        break;
  }
}

Can someone please guide me? The column is created (and the title displayed), but I get no data for the products.

图片转代码服务由CSDN问答提供 功能建议

我正在尝试使用产品的目录可见性值向管理产品列表添加自定义列(基本上,我 需要知道更容易哪些是隐藏的,哪些不是。)

我的代码到目前为止我的孩子主题的函数.php:

   add_filter('manage_edit-product_columns','custom_product_column',10); 
function custom_product_column($ columns){
 
 
 $ columns ['visibility'] = __('Visibility','woocommerce'); 
 返回$ columns; 
} 
 
 add_action('manage_product_posts_custom_column','custom_column_content',10,2); 
 
函数custom_product_list_column_content($ column,$ product_id){
 
 global $ post; 
  
 $ isitvisible = get_post_meta($ product_id,'product_visibility',true); 
 
switch($ column){
 
 case'visibility':
 echo $ isitvisible; 
 break; 
} 
  } 
   
 
 

有人可以指导我吗? 该列已创建(并显示标题),但我没有获得产品数据。

  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

1条回答 默认 最新

  • dte8665 2018-10-07 00:09
    已采纳

    There are some errors and mistakes in your code. Also since Woocommerce 3 product visibility is handled by Woocommerce custom taxonomy 'product_visibility'. Try the following instead:

    // Add a new column to Admin products list with a custom order
    add_filter( 'manage_edit-product_columns', 'visibility_product_column', 10);
    function visibility_product_column($columns){
        $new_columns = [];
        foreach( $columns as $key => $column ){
            $new_columns[$key] = $columns[$key];
            if( $key == 'price' ) { // Or use: if( $key == 'featured' ) {
                 $new_columns['visibility'] = __( 'Visibility','woocommerce');
            }
        }
        return $new_columns;
    }
    
    // Add content to new column raows in Admin products list
    add_action( 'manage_product_posts_custom_column', 'visibility_product_column_content', 10, 2 );
    function visibility_product_column_content( $column, $product_id ){
        global $post;
    
        if( $column =='visibility' ){
            if( has_term( 'exclude-from-catalog', 'product_visibility', $product_id ) )
                echo '<em style="color:grey;">' . __("No") . '</em>';
            else
                echo '<span style="color:green;">' . __("Yes") . '</span>';
        }
    }
    

    Code goes in function.php file of your active child theme (active theme). Tested and works.

    enter image description here

    已采纳该答案
    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题