Add ability to change Capability for the admin pages
-
Right now it is hardcoded to be
manage_options
, which isn’t always desirable.Something like a Filter to change it would be sufficient since I would figure only developers would want access to this anyway.
This is how I was able to get it working in the meantime, but I had to hardcode the directory name of the plugin which has its own issues as well.
add_action( 'admin_menu', function() { // Remove ones with manage_options cap remove_menu_page( 'webappick-product-feed-for-woocommerce/admin/class-woo-feed-admin.php' ); remove_submenu_page( 'webappick-product-feed-for-woocommerce/admin/class-woo-feed-admin.php', 'webappick-product-feed-for-woocommerce/admin/class-woo-feed-admin.php' ); remove_submenu_page( 'webappick-product-feed-for-woocommerce/admin/class-woo-feed-admin.php', 'woo_feed_manage_feed' ); remove_submenu_page( 'webappick-product-feed-for-woocommerce/admin/class-woo-feed-admin.php', 'woo_feed_config_feed' ); remove_submenu_page( 'webappick-product-feed-for-woocommerce/admin/class-woo-feed-admin.php', 'woo_feed_pro_vs_free' ); // Re-add with our Cap add_menu_page( __('Woo Feed', 'woo-feed'), __('Woo Feed', 'woo-feed'), 'woofeed_manage', // Custom Capability 'webappick-product-feed-for-woocommerce/admin/class-woo-feed-admin.php', 'woo_feed_generate_feed', 'dashicons-rss' ); add_submenu_page( 'webappick-product-feed-for-woocommerce/admin/class-woo-feed-admin.php', __('Make Feed', 'woo-feed'), __('Make Feed', 'woo-feed'), 'woofeed_manage', 'webappick-product-feed-for-woocommerce/admin/class-woo-feed-admin.php', 'woo_feed_generate_feed' ); add_submenu_page( 'webappick-product-feed-for-woocommerce/admin/class-woo-feed-admin.php', __('Manage Feeds', 'woo-feed'), __('Manage Feeds', 'woo-feed'), 'woofeed_manage', 'woo_feed_manage_feed', 'woo_feed_manage_feed' ); add_submenu_page( 'webappick-product-feed-for-woocommerce/admin/class-woo-feed-admin.php', __('Settings', 'woo-feed'), __('Settings', 'woo-feed'), 'woofeed_manage', 'woo_feed_config_feed', 'woo_feed_config_feed' ); add_submenu_page( 'webappick-product-feed-for-woocommerce/admin/class-woo-feed-admin.php', __('Premium', 'woo-feed'), __('Premium', 'woo-feed'), 'woofeed_manage', 'woo_feed_pro_vs_free', 'woo_feed_pro_vs_free' ); global $_wp_submenu_nopriv; global $plugin_page; $parent = get_admin_page_parent(); // Fix Admin Menu Perms // See user_can_access_admin_page(), and admin_menu versus _admin_menu hooks // The _wp_submenu_nopriv Global gets set up before admin_menu fires off, but we need to hook in at admin_menu to remove the old version of the Menu Items if ( current_user_can( 'woofeed_manage' ) ) { if ( isset( $_wp_submenu_nopriv[ $parent ][ $plugin_page ] ) ) { unset( $_wp_submenu_nopriv[ $parent ][ $plugin_page ] ); } } }, 11 );
- The topic ‘Add ability to change Capability for the admin pages’ is closed to new replies.