您好我正在尝试限制某些用户在wordpress管理页面的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 );
非常感谢任何帮助或指导。
答案 0 :(得分:2)
你做错了。
将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 );
答案 1 :(得分:0)
您没有使用正确的列名,或者自从您发布问题以来,WC已经更改了它们。如果WC确实更改了列名,最好在删除列之前检查列是否仍然存在。
这是一个面向未来的解决方案,您可以在主题的函数中使用.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,这样您只需点击几下即可添加和删除列。< / p>