Welcome to WordPress. This is your first post. Edit or delete it, then start writing!
/** * Exclui um conteúdo gerado * * @param int $content_id ID do conteúdo a ser excluído * @return bool True se a exclusão foi bem-sucedida, false caso contrário */ function adbloom_delete_content($content_id) { global $wpdb; $table_name = $wpdb->prefix . 'adbloom_generated_content'; // Obter informações do conteúdo antes de excluir $content = $wpdb->get_row($wpdb->prepare("SELECT * FROM {$table_name} WHERE id = %d", $content_id)); if (!$content) { return false; } // Se o conteúdo estiver associado a um post, excluir o post também if (!empty($content->post_id)) { wp_delete_post($content->post_id, true); } // Excluir imagens associadas if (!empty($content->images)) { $images = maybe_unserialize($content->images); if (is_array($images)) { foreach ($images as $image_id) { if (is_numeric($image_id)) { wp_delete_attachment($image_id, true); } } } } // Excluir o conteúdo do banco de dados $result = $wpdb->delete( $table_name, ['id' => $content_id], ['%d'] ); return $result !== false; } /** * Adiciona uma notificação administrativa * * @param string $type Tipo de notificação (success, error, warning, info) * @param string $message Mensagem a ser exibida * @param bool $dismissible Se a notificação pode ser descartada */ function adbloom_add_admin_notice($type, $message, $dismissible = true) { $notices = get_option('adbloom_admin_notices', []); $notices[] = [ 'type' => $type, 'message' => $message, 'dismissible' => $dismissible ]; update_option('adbloom_admin_notices', $notices); } /** * Exibe notificações administrativas */ function adbloom_display_admin_notices() { $notices = get_option('adbloom_admin_notices', []); if (empty($notices)) { return; } foreach ($notices as $notice) { $dismissible = !empty($notice['dismissible']) ? 'is-dismissible' : ''; printf( '
%s