So I'm attempting to block out all post edits for all users except admins, so I have the following setup:
add_filter('post_row_actions', [self::class, 'remove_edit_permissions'], 10, 2);
public static function remove_edit_permissions(array $actions = []): array
{
$user = User::init();
if (is_null($user)) {
return [];
}
if (!$user->role()->has_capability('manage_options')) {
if (isset($actions['inline hide-if-no-js'])) {
unset($actions['inline hide-if-no-js']);
}
if (isset($actions['edit'])) {
unset($actions['edit']);
}
}
return $actions;
}
This works great, it blocks out the "Quick Edit" and "Edit" buttons in the Admin Post UI such as below:
Problem:
Users are still able to access the edit url and make changes such as this: https://example.com/wp-admin/post.php?post=10690&action=edit
Is there a way to restrict link editing also?
Is there a much better solutions on editing prevention using some sort of hook or filter?
All help will be appreciated!