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.

  • 写回答

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

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 安装svn网络有问题怎么办
  • ¥15 Python爬取指定微博话题下的内容,保存为txt
  • ¥15 vue2登录调用后端接口如何实现
  • ¥65 永磁型步进电机PID算法
  • ¥15 sqlite 附加(attach database)加密数据库时,返回26是什么原因呢?
  • ¥88 找成都本地经验丰富懂小程序开发的技术大咖
  • ¥15 如何处理复杂数据表格的除法运算
  • ¥15 如何用stc8h1k08的片子做485数据透传的功能?(关键词-串口)
  • ¥15 有兄弟姐妹会用word插图功能制作类似citespace的图片吗?
  • ¥15 latex怎么处理论文引理引用参考文献