WP-Admin: Allow Limited Admin Access to Different User Roles
👥
In this example, the wordpress user role of "contributor" or WooCommerce role of "shop_manager" is enabled to access limited Autoship Cloud submenu pages ('autoship_cloud_subpage_security' filter) or all submenu pages ('autoship_cloud_main_page_security' filter).
Both filters can be found in the autoship_create_menu() function.
Important: Always test customizations to your site on a staging environment before making changes to your live / production site.
/**
* Adjusts the Security for the Autoship Sub Pages
* @link https://codex.wordpress.org/Roles_and_Capabilities#Capability_vs._Role_Table
*
* @param string $capability The current required cap.
* @param string $menu_slug The Sub Menu Page.
* @return string $capability The filtered cap.
*/
function xx_adjust_autoship_cloud_subpage_security( $capability, $menu_slug ){
// Allow users with a Contributor (shop manager) role to access Autoship Cloud > Scheduled Orders & Autoship Cloud > Reports pages
return ( 'scheduled-orders' == $menu_slug ) || ( 'reports' == $menu_slug ) ? 'edit_posts' : $capability;
}
add_filter('autoship_cloud_subpage_security', 'xx_adjust_autoship_cloud_subpage_security', 10, 2 );
/**
* Adjusts the Security for the Autoship Main Menu Page
* @link https://codex.wordpress.org/Roles_and_Capabilities#Capability_vs._Role_Table
*
* @param string $capability The current required cap.
* @return string $capability The filtered cap.
*/
function xx_adjust_autoship_cloud_main_page_security( $capability ){
// Allow users with a Contributor (shop manager)role to see ALL Autoship Cloud submenu pages
return 'edit_posts';
}
add_filter('autoship_cloud_main_page_security','xx_adjust_autoship_cloud_main_page_security', 10, 1);