diff --git a/uw_cfg_common.module b/uw_cfg_common.module
index 987b038418f55ad283ea3779efebce145b2e9386..0b6fb6c8961ccc0f409c3c0a6e9ccdd01fafff06 100644
--- a/uw_cfg_common.module
+++ b/uw_cfg_common.module
@@ -847,6 +847,85 @@ function uw_cfg_common_preprocess_responsive_image(&$variables) {
  */
 function uw_cfg_common_form_alter(array &$form, FormStateInterface $form_state, string $form_id): void {
 
+  // Define all names in an array.
+  $names = [
+    'ct_names' => [
+      'uw_ct_blog',
+      'uw_ct_contact',
+      'uw_ct_catalog_item',
+      'uw_ct_event',
+      'uw_ct_expand_collapse_group',
+      'uw_ct_news_item',
+      'uw_ct_opportunity',
+      'uw_ct_profile',
+      'uw_ct_project',
+      'uw_ct_service',
+      'uw_ct_sidebar',
+      'uw_ct_site_footer',
+      'uw_ct_web_page',
+    ],
+    'vocab_names' => [
+      'uw_vocab_blog_tags',
+      'uw_vocab_contact_group',
+      'uw_vocab_audience',
+      'uw_vocab_catalog_categories',
+      'uw_vocab_catalogs',
+      'uw_tax_event_tags',
+      'uw_tax_event_type',
+      'uw_vocab_news_tags',
+      'uw_vocab_profile_type',
+      'uw_vocab_project_roles',
+      'uw_vocab_project_topics',
+      'uw_vocab_service_categories',
+    ],
+    'media_names' => [
+      'uw_mt_file',
+      'uw_mt_icon',
+      'uw_mt_image',
+      'uw_mt_local_video',
+      'uw_mt_remote_video',
+      'uw_mt_vimeo_banner_video',
+    ],
+  ];
+
+  // Get current user.
+  $user = \Drupal::currentUser();
+
+  // Loop all names in array.
+  foreach ($names as $key => $type_names) {
+    foreach ($type_names as $name) {
+      $custom_waring_message = t('CAUTION. This will permanently delete this piece of content; this action cannot be undone. If anything references this content, it may cause visual or structural issues on that page. Make sure you have removed or updated all references before deleting.');
+
+      // Use custom warning message for deleting nodes, terms and medias.
+      // The user has 'delete any' and 'delete own' permissions.
+      if ($key == 'ct_names') {
+        if (($form_id == 'node_' . $name . '_delete_form') &&
+          ($user->hasPermission('delete any ' . $name . ' content') ||
+            $user->hasPermission('delete own ' . $name . ' content'))) {
+          $form['description']['#markup'] = $custom_waring_message;
+          break;
+        }
+      }
+      // The user has 'delete terms' permission.
+      if ($key == 'vocab_names') {
+        if (($form_id == 'taxonomy_term_' . $name . '_delete_form') &&
+          $user->hasPermission('delete terms in ' . $name)) {
+          $form['description']['#markup'] = $custom_waring_message;
+          break;
+        }
+      }
+      // The user has 'delete any' permission.
+      if ($key == 'media_names') {
+        if (($form_id == 'media_' . $name . '_delete_form') &&
+          ($user->hasPermission('delete any ' . $name . ' media') ||
+           $user->hasPermission('delete own ' . $name . ' media'))) {
+          $form['description']['#markup'] = $custom_waring_message;
+          break;
+        }
+      }
+    }
+  }
+
   // ISTWCMS-4648: removing revisions from layout builder page.
   if (\Drupal::routeMatch()->getRouteName() == 'layout_builder.overrides.node.view') {
     $form['revision']['#access'] = FALSE;