If you need to hide the W3 Total Cache sidebar and admin bar menu item links from non-Administrators you can use the following in your functions.php file:
/**
* Hide W3 Total Cache sidebar menu from non-Administrators
*/
function hide_w3tc_menu_sidebar() {
if ( !current_user_can( 'manage_options' ) ) {
remove_menu_page( 'w3tc_dashboard' );
}
}
add_action( 'admin_menu', 'hide_w3tc_menu_sidebar', 11 );
/**
* Hide W3 Total Cache admin bar menu from non-Administrators
*/
function hide_w3tc_menu_admin_bar() {
global $wp_admin_bar;
if ( !current_user_can( 'manage_options' ) ) {
$wp_admin_bar->remove_menu('w3tc');
}
}
add_action( 'wp_before_admin_bar_render', 'hide_w3tc_menu_admin_bar' );
/**
* Hide W3 Total Cache "Purge from cache" from Page and Posts lists
*/
function remove_purge_from_page_cache_link( $actions, $post ) {
if ( !current_user_can( 'manage_options' ) ) {
unset($actions['pgcache_purge']);
return $actions;
}
}
add_filter('post_row_actions', 'remove_purge_from_page_cache_link',1000,2);
add_filter('page_row_actions', 'remove_purge_from_page_cache_link',1000,2);
This will effectively display the W3 Total Cache menu items to users only with Administrator role capabilities.