首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >允许编辑器用户完全有权访问插件设置

允许编辑器用户完全有权访问插件设置
EN

WordPress Development用户
提问于 2020-03-04 08:42:27
回答 1查看 1.8K关注 0票数 0

我希望完全允许编辑器用户访问特定的插件MC4WP: Mailchimp https://wordpress.org/plugins/mailchimp-for-wp/

它在子主题文件夹中的fuctions.php文件中添加了下面的代码

代码语言:javascript
复制
add_filter('mc4wp_admin_required_capability', function($capability) 
{
    return 'edit_pages';
});

编辑器可以访问mailchimp插件,但是如果编辑器用户尝试单击“保存”按钮将API键保存在插件设置中,则会出现错误。

你需要更高级别的许可。对不起,不允许您管理此站点的选项。

我正在使用高级访问管理器插件https://wordpress.org/plugins/advanced-access-manager/,在插件设置中,我已经完全允许编辑用户使用mailchimp插件,检查屏幕截图。

但不起作用。

MailChimp for WordPress提供了一系列的操作和过滤器挂钩- https://github.com/ibericode/mc4wp-snippets/blob/master/hooks.md

EN

回答 1

WordPress Development用户

发布于 2020-03-04 14:51:50

这是原插件的一个问题。很明显他们从来没有测试过这个过滤器。他们使用mc4wp_admin_required_capability来控制管理页是否是可访问的,但是WordPress仍然阻止您保存设置,除非也使用此筛选器:

https://developer.wordpress.org/reference/hooks/option_页面_能力_选项_页面

你应该联系插件的作者,让他们解决这个问题,但同时你也可以自己实现。假设是有问题的插件,这应该是可行的:

代码语言:javascript
复制
add_filter(
    'option_page_capability_mc4wp_settings',
    function( $capability ) {
        return 'edit_pages';
    }
);

您可能也需要这个来保存“集成”设置。

代码语言:javascript
复制
add_filter(
    'option_page_capability_ mc4wp_integrations_settings',
    function( $capability ) {
        return 'edit_pages';
    }
);

像“高级访问管理器”这样的插件通常不会对此有所帮助,因为知道这些过滤器是否可行的唯一方法是读取插件代码,这就是为什么这样的插件非常无用。他们所能看到的就是注册了哪些管理菜单,以及注册了哪些用户角色,因为它们是预先声明的。如果不检查每个插件的代码并手动实现解决方案,他们实际上无法控制插件如何使用角色和功能。

如果可以使用高级访问管理器()这样的插件授予对插件设置的完全访问权限,那么最初的插件还没有以非常安全的方式实现设置。

票数 0
EN
页面原文内容由WordPress Development提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://wordpress.stackexchange.com/questions/359962

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档