What You’ll Learn
- Adding custom PHP, CSS, and JavaScript to your Dashboard
- Where custom code is stored and executed
- Using the built-in code editor (CodeMirror 6) with autocompletion, code folding, and the One Dark theme
- Validating PHP snippets before saving with the built-in syntax check
- Keeping your draft when a save conflicts with another change
- Previewing and applying snippet changes through MainWP abilities
- Handling PHP errors safely
- Accessing example code snippets
Extension Add-on - This add-on provides standalone functionality within MainWP Dashboard. No third-party plugins required.
The MainWP Custom Dashboard Extension is designed to contain your custom snippets for your MainWP Dashboard.
By adding custom snippets to this plugin, you can easily extend your MainWP Dashboard functionality or change the way it looks.
After activation, open it from Add-ons > Administrative > Custom Dashboard in MainWP Dashboard.

How It Works
MainWP Custom Dashboard Extension saves your PHP, CSS, and JS snippets in WordPress options on your MainWP Dashboard site instead of requiring separate PHP, CSS, or JS files. CSS and JS snippets are added inline on MainWP admin pages, except Child site tabs. They do not load on other WordPress admin pages or the front end. Saved PHP snippets run during WordPress initialization usingeval(). Their scope includes all WordPress requests on the MainWP Dashboard site, not just MainWP admin pages. Add conditions or hooks in your PHP code when it should run only in a specific context.
MainWP Custom Dashboard Extension is used to apply custom code snippets to the MainWP Dashboard site ONLY!
It doesn’t apply code to child sites.
To apply custom code snippets to child sites, please see the MainWP Code Snippets Extension.
The Code Editor
The editor is powered by CodeMirror 6 and ships with productivity features enabled by default:- Syntax highlighting for PHP, CSS, and JavaScript
- One Dark theme for better readability
- Autocompletion as you type
- Automatic bracket closing for
(),{},[], and quotes - Code folding with gutter handles and keyboard shortcuts
- Tab indentation that respects natural tab behavior inside the editor
Handling a Save Conflict
Version 5.2 checks whether the saved snippet has changed since you opened the editor. If another user, browser tab, or API request changes it first, your save is rejected instead of overwriting that change. Your draft remains in the open editor, and the page does not automatically reload after the conflict. To continue:- Copy your draft somewhere safe before reloading. It is not automatically saved as a recoverable draft.
- Reload the editor to load the latest saved snippet, compare it with your draft, and combine the changes you want to keep.
- Save again from the refreshed editor.
Writing PHP Snippets
PHP snippets are saved as tagless PHP — write your code without<?php or ?> tags. The extension validates this on save and rejects snippets that contain PHP tags.
Pre-save syntax validation
Before a PHP snippet is saved, the extension parses the code without executing it. Malformed snippets are rejected, and the editor displays a validation message. The same parse-only check is used by the PHP validation and replacement-preview abilities. Top-levelnamespace, declare, and use import statements are also rejected because snippets are executed as inline PHP rather than standalone PHP files. A closure’s use (...) clause is allowed.
Passing validation confirms syntax only. It does not prove that the snippet will behave correctly or safely when it later runs.
Runtime error handling
For a matching parse or compile fatal error, the extension shows a recovery message with a reference and a link back to the PHP editor. The Go to fix the snippet link opens the editor with snippet execution skipped for that recovery request:
Throwables) thrown by a snippet are caught and logged instead of taking down the page.
Abilities API
Version 5.2 adds four MainWP abilities to read snippet status without returning saved code, validate proposed PHP without storing or running it, and preview or apply replacements and removals for PHP, CSS, and JavaScript. Changes require the current snippet revision and explicit confirmation. Previews report the proposed effect without saving it. PHP previews check syntax; CSS and JavaScript previews do not lint or execute the supplied code. See Custom Dashboard Abilities for authentication, permissions, examples, and conflict handling. These abilities affect the MainWP Dashboard site only.Related Resources
- Custom Dashboard Abilities - Inspect, validate, and manage snippets through the API
- Development Add-ons - Browse all development tools
- Code Snippets Extension - Deploy code to child sites
- Dashboard Themes - MainWP Dashboard appearance and theme behavior
