删除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,它允许您通过点击几下来添加和删除列。