WordPress Dismissible Notices Handler
, (*1)
Since version 4.2, WordPress has a built-in mechanism for handling dismissible admin notices. While this mechanism handles dismissing notices, the dismissal isn't persistent. This means that a user would see the notice on every page load, even though he or she dismissed the notice already., (*2)
What the Dismissible Notices Handler (DNH) library does is handle the persistent part of dismissing admin notices., (*3)
How It Works
The DNH library is extremely simple to use and yet has a couple of advanced options., (*4)
The basics of it is to register a new admin notice. You really need 3 things for registering a notice:, (*5)
- a unique ID that will identify the notice (you will be warned in case of ID conflicts)
- a notice type
- a message to display in the notice
There is a handy helper function available for notice registration: dnh_register_notice(), (*6)
This function takes 4 parameters:, (*7)
-
$id (string): the unique ID of the notice
-
$type (string): the type of notice you want to display. Currently it can be error for an error notice or updated for a success/update notice
-
$content (string): the content of the admin notice
-
$args (array): additional parameters that can be passed to the notice handler (see below)
Installation
The simpest way to use DNH is to add it as a Composer dependency:, (*8)
composer require julien731/wp-dismissible-notices-handler
Example
Registering an admin notice would look like that:, (*9)
dnh_register_notice( 'my_notice', 'updated', __( 'This is my notice' ) );
Advanced Parameters
The function takes an array of optional parameters allowing more control over the notices and how they're dismissed. Only 3 parameters are available so far but hopefully more will be coming soon., (*10)
Hereafter is the list of available parameters to be passed in the $args array. Please note that the $args parameter is optional., (*11)
| Parameter |
Possible Value(s) |
Default |
Description |
| scope |
user, global |
user |
Whether the notice should be dismissed for the current user only or globally on the site. A notice dismissed for a user will still show up for other users, while a notice dismissed globally will not be displayed anymore after being dismissed once. |
| cap |
Any WordPress capability |
If not empty, the handler will check if the current user has the specified before displaying the notice. |
| class |
string |
Additional class to add to the notice wrapper | | | |