remove jetpack from members dashboard

Members 2 posts 2 voices

  1. I have a membership site with members role capabilities being
    meteorslides read private slides; meteorslides read slide; meteorslides read slides; read; read private pages; read private portfolio projects; read private posts;

    Jetpack shows up under the Dashboard link, and above the Profile link in the member backend.
    How do I stop this?

  2. Jetpack uses the jetpack_admin_page capability to show the menu item:

    add_menu_page( 'Jetpack', $title, 'jetpack_admin_page', 'jetpack', array( $this, 'render' ), 'div' );

    That cap is mapped to the read capability. So, any user with that capability can see it. The only way to disable this is to roll a custom filter. Something like this should work:

    add_filter( 'map_meta_cap', 'my_jp_meta_cap', 10, 2 );
    
    function my_jp_meta_cap( $caps, $cap ) {
    
    	if ( 'jetpack_admin_page' === $cap && ! Jetpack::is_development_mode() )
    		$caps = array( 'manage_options' );
    
    	return $caps;
    }

    You can change manage_options to any cap you want, but that one should be good.