Доработка ролей пользователя Wordpress

500 руб. за проект • электронные деньги
01 ноября 2018, 20:47 • 4 отклика • 30 просмотров
Как запретить удаление и редактирование медиафайлов в вордпресс?

У меня стоит плагин User Role Editor в котором я для пользователей с правами "Автор" разрешил загрузку медиафайлов.

Допустим автор пишет пост, вставляет туда медиафайл. После этого отправляет пост админу на утверждение. После того как админ опубликует данный пост, то пользователь с правами "Автор" не может этот пост редактировать или удалять (в моём случае).

Однако, если он зайдет в медиа, то у него открыты права на редактирование и удаление медиа, которые привязаны к этому уже опубликованному посту. В плагинах ролей такой функции на ограничение нет. Т.е. я хочу обезопасить себя от авторов, которые, после получения оплаты за статью могут напакостить и удалить или отредактировать фото, которые они загружали к публикации. Надеюсь смысл моей задумки понятен.

Как в functions.php ограничить права "Автора" (или всех кроме админа) на редактирование и удаление медиа, которые привязаны к уже опубликованному посту? Также медиа уже опубликованных постов "Автор" не должен видеть в своих медиафайлах (они должны быть у него пусты).

Есть наработка, но её нужно допилить:

add_action('delete_attachment', 'DontDeleteMedia', 11, 1);
function DontDeleteMedia($postID){
$post_image = get_post( $postID ); // инфа про изображение // получаем отсюда страницу вложения
$post_post = get_post( $post_image->post_parent ); // Инфа о странице вложения // получаем отсюда статус публикации
if (!current_user_can('manage_options') && $post_post->post_status == 'publish' && +($post_image->post_parent) !== 0 ) { // роли
exit('Вам запрещено это действие!');
}
}

Спасибо.
Отзывы
R50 ffb4d8a8d16316c2921871155cc7b9b9
Заказчик
Оперативно и качественно выполнил заказ. Благодарю!
~ 6 лет назад
Avatar r50 a6ce93fe35b158fd29ba0e8681c918c22117160e9586a56eee4ffbc20df9bda1
Фрилансер
Отличный заказчик, рекомендую к сотрудничеству!
~ 6 лет назад