Предоставление редакторам доступа к добавленным плагинам

30 мар. 2015 г., 16:18:02
Просмотры: 26.8K
Голосов: 3

Я создал пользовательский плагин, к которому хочу предоставить доступ пользователям с ролью Редактора.

Я нашел ссылку о том, как разрешить редакторам редактировать меню разрешить редакторам редактировать меню?

используя этот код.

    $role_object = get_role( 'editor' );

// добавляем возможность $cap для этого объекта роли
$role_object->add_cap( 'edit_theme_options' );

Итак, есть ли возможность предоставить Редакторам доступ к моим пользовательским плагинам?

0
Все ответы на вопрос 4
3

После быстрого поиска я нашел ответ здесь

https://wordpress.org/support/topic/how-to-allow-non-admins-editors-authors-to-use-certain-wordpress-plugins

Путем замены всех вхождений 'manage_options' на 'edit_pages' в файлах моего плагина.

Редакторам разрешено использовать плагины с Edit_pages

30 мар. 2015 г. 16:43:16
Комментарии

Я попробовал ваш совет, но у меня не сработало.

Не могли бы вы подробнее объяснить, как это реализовать?

Alejo_Blue Alejo_Blue
19 июн. 2018 г. 19:35:41

Хорошо, вам нужен пример кода плагина на Github? Это должно сработать

user123451 user123451
20 июн. 2018 г. 20:30:23

точно! работает как часы, большое спасибо

Youssef Youssef
15 мая 2020 г. 06:56:13
0

Пожалуйста, добавьте следующий код.

function activate_plugin_name() {
   $role = get_role( 'editor' ); // Получаем роль редактора
   $role->add_cap( 'manage_options' ); // Добавляем возможность управления настройками
}
// Регистрируем хук активации
register_activation_hook( __FILE__, 'activate_plugin_name' );

function deactivate_plugin_name() {
  $role = get_role( 'editor' ); // Получаем роль редактора
  $role->remove_cap( 'manage_options' ); // Удаляем возможность управления настройками
}
// Регистрируем хук деактивации
register_deactivation_hook( __FILE__, 'deactivate_plugin_name' );`
9 февр. 2017 г. 00:17:44
0

Это пример использования, когда необходимо активировать плагин для роли "редактор". Плагин называется Bulk Images to Posts. По умолчанию этот плагин активен только для роли администратора. Чтобы активировать его для роли "редактор", необходимо перейти в файл "bulk-images-to-posts.php" и найти функцию big_create_menu() (которая отвечает за создание меню в левой панели администратора).

Если заменить "manage_options" на "edit_pages", вы увидите, что в меню администратора для роли "редактор" плагин становится активным.

Это всего лишь один пример использования, демонстрирующий эффект от применения "edit_pages"

Вот фрагмент кода, иллюстрирующий это:

// создаем новое меню верхнего уровня
global $bip_admin_page;
$bip_admin_page = add_menu_page(__('Bulk Images to Posts Uploader','bulk-images-to-posts'), __('Bulk','bulk-images-to-posts'), 'edit_pages', 'bulk-images-to-post','bip_upload_page','dashicons-images-alt2');
// создаем подменю
add_submenu_page( 'bulk-images-to-post', __('Bulk Images to Post - Upload','bulk-images-to-posts'), __('Uploader','bulk-images-to-posts'), 'edit_pages', 'bulk-images-to-post');
15 мая 2020 г. 07:44:48
0

Спасибо Liz Eipe за ваше решение, но, к сожалению, оно не сработало для меня. То, что сработало — это изменение 'capability' для всех хуков add_menu_page() и add_submenu_page().

По сути, значение capability, которое вы устанавливаете, соответствует доступу для различных типов и комбинаций пользователей. Все возможные capability и соответствующий доступ можно посмотреть здесь.

Я выбрал значение 'publish_posts', которое дает доступ к странице админки, зарегистрированной через хуки, Супер Админу, Админу, Редактору и Автору.

Вот мой код до изменений:

add_menu_page(
  'My Menu Title',
  'custom menu',
  'administrator', // Только доступ для админа
  'myplugin/myplugin-admin.php',
  '',
  plugins_url( 'myplugin/images/icon.png' ),
  3
);

А теперь с доступом для Админа, Редактора и Автора он изменился на:

add_menu_page(
  'My Menu Title',
  'custom menu',
  'publish_posts', // Доступ для Админа, Редактора, Автора
  'myplugin/myplugin-admin.php',
  '',
  plugins_url( 'myplugin/images/icon.png' ),
  3
);

И последнее небольшое замечание: не забудьте изменить это для всех страниц админки плагина, к которым вы хотите предоставить доступ другим пользователям, включая все подменю.

26 нояб. 2020 г. 19:19:52