Hook: media.delete.should

Last updated on Jun 18, 2026 09:53

Overview

Type: Filter Location: app/Services/MediaService.php

Gate filter that controls whether a media file can be deleted. Return false to prevent deletion. Useful for protecting files referenced by critical settings (logos, favicons).

Parameters

Param Type Description
$shouldDelete bool Current permission (default: true)
$media Media Media record being deleted

Return

Must return bool.

Usage Example

Hook::addFilter('media.delete.should', function (bool $allow, $media) {
    $logo = get_option('site_logo', null, 'general');
    return ($media->url === $logo) ? false : $allow;
});

PolyCMS is an open-source content management system for modern web applications, inspired by the WordPress plugin and theme ecosystem but built on top of the Laravel framework. It is designed to provide a complete foundation for content publishing, e-commerce, multi-language support, and extensible module architecture — powered by a Vue 3 admin panel with data served entirely through RESTful APIs.

Whether you're building a blog, a documentation site, an online store, or a multi-tenant SaaS platform, PolyCMS aims to give you a comprehensive starting scaffold so you can ship quickly and extend easily through integrated modules and themes. In particular, themes in PolyCMS follow a multi-theme architecture — one Main theme and an unlimited number of Sub themes can run side by side on the same installation.

We hope this ready-made foundation proves useful for building your next website, blog, or web app, saving you from having to start completely from scratch.