AdsDestroyer – clean admin panel & white label

Description

AdsDestroyer turns the WordPress admin into a clean, white-label workspace. Hide any element you do not need — advertising blocks, promotional notices, menu items, admin-bar nodes, or confidential data — by picking it visually. The plugin generates a precise XPath or CSS selector and applies it on every page load, so hidden blocks never flash back.

Perfect for:
Focus & Productivity: Hide distracting admin notices, promotional banners, and unnecessary UI elements to concentrate on your work
Brand Customization: Remove third-party branding, API keys, and sensitive information from admin screens
Clean Interface: Eliminate clutter by hiding elements that can’t be removed through standard WordPress settings
Client Management: Create cleaner admin experiences for clients by hiding complex settings and technical information
Development Workflow: Remove development notices, debug information, and testing elements from production admin

Key Features:
Visual Selection Mode: Click the admin bar button and visually select any element to hide
Smart Block Picker: Snaps to meaningful blocks and lets you preview and choose parent containers
Collision-Aware Panel: Keeps controls clear of the selected block, admin bar, and menu, with a pointer to the target
Smart Selector Engine: Chooses stable IDs, data attributes, classes, text, or a positional fallback and validates uniqueness
Stable Admin Chrome Rules: Uses deterministic anchors for submenu items and global scope for admin menu and admin bar targets
Flexible Duration: Set rules to hide elements forever or for specific time periods (hours, days, weeks, months)
Safe Removal: Uses HTML5 parsing with placeholder replacement to prevent broken layouts
Rule Management: Full CRUD interface to edit, activate/deactivate, and delete rules
Conflict Resolution: Automatically detects duplicate rules and offers to activate existing ones
Multisite Support: Per-site or network-wide rule management
Performance Optimized: Only processes admin pages, never affects frontend performance

We drew inspiration from these plugins:
– Admin Menu Editor Pro
– White Label CMS
– Adminimize
– Remove Admin Notices
– Admin Columns Pro

Usage

Quick Start:
1. Activate Selection Mode: Click the « Disable ad » button in the WordPress admin bar to start hiding elements
2. Select Elements: Hover over any element to preview it, then click to select
3. Refine the Target: Preview the parent chain and choose a complete container when needed
4. Choose Duration: Click « Hide » and explicitly select how long to hide the element:
– Hide forever (permanent)
– For a day (24 hours)
– For a week (7 days)
– For a month (30 days)
5. Element Hidden: The selected element disappears only after a duration is chosen

Managing Rules:
View All Rules: Go to Settings AdsDestroyer to see all your hidden elements
Edit Rules: Click the edit button to modify XPath rules, add descriptions, or change expiration dates
Toggle Rules: Activate/deactivate rules without deleting them
Delete Rules: Remove rules you no longer need
Reset All: Clear all rules at once if needed

Advanced Features:
Visual Selection: The plugin resolves nested markup to a meaningful block and offers up to six ancestor candidates
Selector Validation: Every generated XPath must resolve to exactly the selected element before it is stored
Scope Awareness: Fragile page content stays page-specific, while admin menu and admin-bar rules can work globally
Conflict Detection: If you try to hide an element that’s already hidden, the plugin offers to activate the existing rule
Safe Removal: Uses HTML5 parsing to prevent broken layouts when hiding elements
Page Information: Automatically tracks which page each rule was created on for better organization

Multisite

  • By default, settings are per site.
  • Optional network-wide mode (planned toggle in settings) stores options as a site option across network.

Output Buffering

This plugin uses PHP output buffering (ob_start) to process HTML content in the WordPress admin panel. The buffering is only active in the admin area and never affects the frontend of your website.

Important for hosting providers:
– The plugin does NOT use output buffering on frontend pages
– Admin panel pages are rarely cached by hosting providers due to their personalized nature
– If you have admin panel caching enabled on your hosting, it may cause conflicts with the plugin’s functionality
– If you have problems with WordPress admin panel caching. We recommend disabling admin panel caching when using this plugin

Technical details:
– The buffering is used to apply XPath rules to hide unwanted elements in the admin interface
– No impact on frontend performance or caching

Development & Build Instructions

This plugin uses modern build tools for JavaScript and CSS compilation. To build the plugin from source:

Prerequisites:
– PHP 7.4 through PHP 8.4 with the DOM extension
– Node.js 18 or higher
– npm (comes with Node.js)
– Composer 2

Build Commands:
npm install – Install dependencies
npm run build – Build production assets and create distribution package
npm run build:dev – Build development assets (with source maps)
npm run dev – Build development assets (alias for build:dev)

Build Process:
1. JavaScript files are compiled using Vite from assets/js/ directory
2. SCSS files are compiled to CSS from assets/scss/ directory
3. Compiled assets are output to build/ directory
4. Final distribution package is created as build/compiled/ads-destroyer-[version].zip

Source Files:
– JavaScript: assets/js/main.js, assets/js/admin-settings.js, and related modules
– SCSS: assets/scss/index.scss, assets/scss/admin-settings.scss, and component files
– Build configuration: vite.config.js, package.json

Output Structure:
build/js/ – Compiled JavaScript files
build/css/ – Compiled CSS files
build/compiled/ – Distribution packages

Our Other Plugins

AI Thumbnails Maker – Automatically generate beautiful AI-powered thumbnails and force regenerate featured images for your WordPress posts. Perfect for keeping your media library fresh and professional.
SmartyPress AI Engine – Powerful AI integration for WordPress with ChatGPT and Deepseek. Generate high-quality content directly in Gutenberg editor with Magic Wand inline editing and AI Content Generator panel. Create titles, articles, excerpts with 10+ pre-built actions or custom prompts.
Unnotifier – Take complete control over WordPress admin notifications. Hide, customize, or remove any admin notice with precision. Essential for agencies managing multiple client sites or power users who value a clean interface.
Everyone Accessibility Suite – Lightweight accessibility widget and frontend panel so visitors can adjust typography, contrast, colors, and reading aids. Includes 5 accessibility profiles and 40+ tools for WCAG 2.1, ADA, and Section 508 compliance.

Captures d’écrans

Installation

  1. Upload the plugin to wp-content/plugins/ads-destroyer or clone/install it there.
  2. Navigate to Plugins Activate « AdsDestroyer – clean admin panel & white label ».
  3. From Settings AdsDestroyer – clean admin panel & white label, review defaults and permissions.

FAQ

The page layout breaks after hiding a block

  • The plugin uses HTML5 parsing with placeholder replacement to minimize layout issues. If you still experience problems, try selecting a parent container instead of the specific element, or use the « Reset all rules » option to start fresh.

A block with dynamic CSS classes is not hidden

  • The plugin automatically handles dynamic classes and generates multiple XPath candidates. Try re-selecting the element or select a parent container with a stable ID. The plugin prioritizes elements with data attributes (data-test, data-testid, data-qa) for better targeting.

How do I reset all rules?

  • Go to Settings AdsDestroyer « Reset all rules » button. This will remove all hidden elements and restore the original admin interface.

Can I hide elements temporarily?

  • Yes! When creating a rule, you can choose from several duration options: hide forever, for a day, for a week, or for a month. Temporary rules automatically expire and restore the hidden elements.

What if I accidentally hide something important?

  • Use the « Reset all rules » option in the settings page to restore all hidden elements. You can also edit individual rules to deactivate them without deleting them.

Does this plugin affect my website’s frontend?

  • No, this plugin only works in the WordPress admin area and never affects your website’s frontend or public pages.

Can I use this on a multisite network?

  • Yes, the plugin supports multisite installations with per-site rule management. Each site can have its own set of hidden elements.

Avis

Il n’y a aucun avis pour cette extension.

Contributeurs/contributrices & développeurs/développeuses

« AdsDestroyer – clean admin panel & white label » est un logiciel libre. Les personnes suivantes ont contribué à cette extension.

Contributeurs

Journal des modifications

1.0.35

  • Fixed plugin installation from ZIP archives getting stuck while unpacking when AdsDestroyer rules are active
  • Excluded streaming updater screens and incomplete HTML documents from server-side parsing

1.0.34

  • Added verified compatibility with PHP 7.4 through PHP 8.4 and WordPress 7.1
  • Added a collision-aware selection panel with a dashed pointer that stays clear of the target and WordPress admin chrome
  • Added an ancestor picker, meaningful block snapping, and an empty-container warning
  • Improved selector generation with stable ID, data, class, text, and positional strategies
  • Added deterministic anchors and global scope for WordPress admin menu and admin-bar rules
  • Added visible duration confirmation before a block is hidden
  • Improved early CSS hiding, rule validation, failed-rule reporting, and selector regeneration

1.0.33

  • Replaced overlapping picker controls with a single floating selection panel
  • Added responsive panel placement for small elements, viewport edges, the admin bar, and the admin menu

1.0.32

  • Added stable anchor classes for WordPress admin submenu items
  • Improved global selector scope for WordPress admin chrome

1.0.31

  • Added meaningful block targeting, ancestor selection, and hardened XPath strategies
  • Added scope and selector metadata to stored rules

1.0.30

  • Restored reliable selection-mode highlighting and isolated plugin UI classes from third-party styles

1.0.28

  • WordPress 7.0 compatibility: verified compatibility with WordPress 7.0 and updated plugin metadata
  • Release metadata: updated stable tag and tested WordPress version for the latest release

1.0.27

  • Fixed HTML5 parser issue on options-general.php page by excluding problematic pages from server-side processing
  • Added frontend-only approach for excluded pages (similar to React pages) – elements are hidden via JavaScript
  • Changed .adsd-visually-hidden class from opacity: 0 to display: none for proper element hiding
  • Improved settings page UI with white background and proper styling for tab content
  • Enhanced page exclusion system with detailed documentation of HTML5 parser limitations

1.0.26

  • Security improvements: proper data sanitization and escaping throughout the plugin
  • Replaced session_start() with WordPress User Meta API for state management
  • Fixed output buffer closure issues with register_shutdown_function
  • Added XPath sanitization that preserves syntax while ensuring security
  • Improved nonce handling with proper sanitization

1.0.25

  • Added review notice system to encourage user feedback and ratings

1.0.24

  • Fixed admin bar button appearing on frontend (now shows only in admin area)
  • Fixed selection mode allowing to select the plugin’s « Exit selection mode » button
  • Improved element selection exclusions to allow selecting other admin bar elements while protecting only the plugin’s button
  • Enhanced user experience by preventing accidental hiding of the selection mode control button

1.0.23

  • Fixed WordPress.org plugin directory compatibility issues
  • Shortened plugin description to meet 150 character limit
  • Removed invalid Update URI header field
  • Added trunk synchronization to build process for better WordPress.org integration

1.0.22

  • Complete refactoring of XPath engine for better performance and reliability
  • Fixed compatibility issues with other plugins and themes
  • Added ability to remove HTML blocks in React UI (currently hides blocks visually without DOM removal)
  • Hidden blocks are now visible in selection mode for easier management and verification
  • Improved element selection overlay with better visual feedback
  • Enhanced XPath rule generation for more precise targeting

1.0.21

  • Completely redesigned readme.txt with comprehensive use cases and examples
  • Added detailed usage instructions with step-by-step guide
  • Updated FAQ section with current plugin features
  • Added inspiration credits for similar plugins
  • Enhanced description with focus on productivity and customization benefits
  • Improved documentation for better user understanding

1.0.20

  • Added comprehensive build instructions to readme.txt
  • Updated development documentation with Node.js build process
  • Improved plugin documentation for developers

1.0.19

  • Updated all plugin prefixes from AIDAD/aidad to ADSD/adsd for WordPress.org compliance
  • Added output buffering documentation for hosting providers
  • Improved admin-only buffering with clear frontend exclusion

1.0.18

  • Visual overlay updated: blur/hatch on hover and selection, centered action button, instruction hint.
  • Safe removal via HTML5 and placeholders.
  • Dynamic class filtering in XPath builder and server-side relaxation.
  • Rules: expiry support (duration on save).
  • Settings: actions column, edit in place, author display, instruction.
  • Initial modernized implementation.