Я использую плагин Wordpress "Отправленные пользователем сообщения", чтобы позволить определенному пользователю писать сообщения из внешнего интерфейса.
Я не хочу, чтобы они видели другие сообщения в бэкэнде, и я хочу, чтобы они иметь как можно меньше прав доступа. Поэтому я хочу, чтобы они были только «подписчиками».
Единственная проблема, с которой я столкнулся сейчас, заключается в том, что «подписчикам» не разрешено загружать файлы, и поэтому кнопка «Добавить мультимедиа» не была видна. Я решил это, добавив этот код:
if ( current_user_can('subscriber') && !current_user_can('upload_files') )
add_action('admin_init', 'allow_subscriber_uploads');
function allow_subscriber_uploads() {
$subscriber = get_role('subscriber');
$subscriber->add_cap('upload_files');
}
С этим кодом есть кнопка «Добавить медиа», «подписчик» может получить доступ к библиотеке библиотек (это нормально), и ему не разрешено удалять другие файлы (также хорошо).
Но когда я пытаюсь загрузить файлы в редакторе внешнего интерфейса с помощью «подписчика», появляется следующая ошибка: «Извините, вам не разрешено прикреплять файлы к этому сообщению . ".
Я уже пытался добавить больше ролей, подобных этой:
if ( current_user_can('subscriber') && !current_user_can('upload_files') )
add_action('admin_init', 'allow_subscriber_uploads');
function allow_subscriber_uploads() {
$subscriber = get_role('subscriber');
$subscriber->add_cap('upload_files');
$subscriber->add_cap('edit_attachments');
$subscriber->add_cap('edit_posts');
$subscriber->add_cap('edit_published_pages');
$subscriber->add_cap('edit_others_pages');
$subscriber->add_cap('edit_others_posts');
$subscriber->add_cap('level_0');
$subscriber->add_cap('level_1');
}
К сожалению, это все еще не работает, появляется та же ошибка. Любые идеи, почему это не работает и какие роли необходимы, чтобы сделать эту работу? Любые другие способы решить эту проблему?
Другая идея, которую я имел, состояла в том, чтобы дать им роль «участника» и затем удостовериться, что они не могут получить доступ к бэкэнду, но это казалось более сложным способом, чем просто позволить » подписчик "для загрузки медиафайлов.