如何为WordPress中除订阅者之外的所有用户角色提供对特定插件的访问权限

时间:2017-02-15 作者:Vamshi

我正在使用ultimateProduct Catalog plugin 在WordPress中。目前,只有管理员角色用户才能查看插件设置。

但我需要编辑器、贡献者和作者角色,用户还必须拥有查看特定插件的权限。任何人都可以为我提供一个解决方案来授予查看特定插件的权限。

3 个回复
SO网友:Vamshi

找到了解决方法。获取当前用户id并基于id获取当前用户信息。从该用户信息获取用户角色。如果用户角色不是订阅者,则只有我们可以添加菜单页。这样,编辑器/贡献者可以访问插件。

以下是工作代码。

<?php
    $userID = get_current_user_id();
    $user = new WP_User($userID);
    $userRole =  $user->roles[0];
    if($userRole!="subscriber")
    {
    $Access_Role =$userRole;      
    $UPCP_Menu_page = add_menu_page($page_title, $menu_title, $Access_Role, \'UPCP-options\', \'UPCP_Output_Options\',null , \'50.5\');
    add_action("load-$UPCP_Menu_page", "UPCP_Screen_Options");
    }
?>

SO网友:I\'m Joe Too

使用current_user_can( \'edit_posts\' ) 适用于订阅服务器之上的任何登录用户。此外,请查看WordPress角色和功能,以查看不同级别的其他权限。

<?php
if( current_user_can( \'edit_posts\' ) ){
  // do whatever
}

SO网友:smartcat

进行这样的更改的问题是,如果您编辑插件代码,您将在下次插件更新时丢失所做的更改。

更好的做法是,找出插件是否正在创建自己的功能,然后创建一个小插件,其唯一目的是将所述功能提供给任何不是“订阅者”的人

相关推荐

更新页面(update-core.php)和插件页面(plugins.php)恢复到主页

我在Wordpress网站的管理视图中收到通知,我有一个网站和插件的可用更新(在我的网络管理仪表板中,在“插件”和“更新”旁边的红色圆圈中有“1”)。。。但当我尝试同时转到“更新”页和;插件页面,是否显示主页?此时的URL为http:///wp-admin/network/update-core.php/和http:///wp-admin/plugins.php/分别地因此,我永远无法到达真正的更新页面,也无法更新我的Wordpress或插件。如何显示更新或插件页面?