删除woocommerce产品页面的列

问题描述:

嗨我试图限制某些用户在查看wordpress管理页面woocommerce中产品列表时的选项。删除woocommerce产品页面的列

if(current_user_can('vendor')) { 
function my_columns_filter($columns) { 

    unset($columns['tags']); 
    unset($columns['featured']); 
    unset($columns['type']); 
    return $columns; 
} 
} 
add_filter('manage_edit-product_columns', 'my_columns_filter', 10, 1); 

任何帮助或指导将不胜感激。

你做错了。

if/else放在函数里面而不是包装函数。

function my_columns_filter($columns) { 
    if(current_user_can('vendor')) { 
     unset($columns['tags']); 
     unset($columns['featured']); 
     unset($columns['type']); 

     return $columns; 
    } 
} 
add_filter('manage_edit-product_columns', 'my_columns_filter', 10, 1); 

您没有使用正确的列名,或者是WC,因为你发布你的问题已经改变了他们。在WC更改列名称的情况下,最好检查一个列是否仍然存在,然后再删除它。

这里是一个面向未来的解决方案,你可以过去到主题functions.php:

function my_product_columns_filter($columns) { 
    if (current_user_can('vendor')) { 
     foreach (array('product_tag', 'featured', 'product_type') as $name) { 
      if (isset($columns[ $name ])) { 
       unset($columns[ $name ]); 
      } 
     } 
    } 

    return $columns; 
} 

add_filter('manage_edit-product_columns', 'my_product_columns_filter'); 

没有编码解决方案

如果你只是在寻找,而不需要一个快速解决方案编码,您可以使用wordpress.org上的免费admin columns plugin,它允许您通过点击几下来添加和删除列。