我希望完全允许编辑器用户访问特定的插件MC4WP: Mailchimp https://wordpress.org/plugins/mailchimp-for-wp/
它在子主题文件夹中的fuctions.php文件中添加了下面的代码
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
发布于 2020-03-04 14:51:50
这是原插件的一个问题。很明显他们从来没有测试过这个过滤器。他们使用mc4wp_admin_required_capability来控制管理页是否是可访问的,但是WordPress仍然阻止您保存设置,除非也使用此筛选器:
https://developer.wordpress.org/reference/hooks/option_页面_能力_选项_页面
你应该联系插件的作者,让他们解决这个问题,但同时你也可以自己实现。假设这是有问题的插件,这应该是可行的:
add_filter(
'option_page_capability_mc4wp_settings',
function( $capability ) {
return 'edit_pages';
}
);您可能也需要这个来保存“集成”设置。
add_filter(
'option_page_capability_ mc4wp_integrations_settings',
function( $capability ) {
return 'edit_pages';
}
);像“高级访问管理器”这样的插件通常不会对此有所帮助,因为知道这些过滤器是否可行的唯一方法是读取插件代码,这就是为什么这样的插件非常无用。他们所能看到的就是注册了哪些管理菜单,以及注册了哪些用户角色,因为它们是预先声明的。如果不检查每个插件的代码并手动实现解决方案,他们实际上无法控制插件如何使用角色和功能。
如果可以使用高级访问管理器()这样的插件授予对插件设置的完全访问权限,那么最初的插件还没有以非常安全的方式实现设置。
https://wordpress.stackexchange.com/questions/359962
复制相似问题