Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/pressmodo/wp-admin-notices
An helper library to create persistent and dismissible WordPress admin notices.
https://github.com/pressmodo/wp-admin-notices
admin composer library notices pressmodo wordpress
Last synced: 27 days ago
JSON representation
An helper library to create persistent and dismissible WordPress admin notices.
- Host: GitHub
- URL: https://github.com/pressmodo/wp-admin-notices
- Owner: Pressmodo
- Created: 2020-02-22T16:11:58.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2020-05-15T15:23:30.000Z (over 4 years ago)
- Last Synced: 2024-10-10T23:04:17.100Z (27 days ago)
- Topics: admin, composer, library, notices, pressmodo, wordpress
- Language: PHP
- Homepage: https://pressmodo.com
- Size: 22.5 KB
- Stars: 3
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: readme.md
Awesome Lists containing this project
README
# WP Admin Notices
An helper library to create persistent and dismissible WordPress admin notices.
Notices created using this method are automatically dismissible.
## Usage
```php
$my_notices = new \Pressmodo\AdminNotices\Notices();// Add a notice.
$my_notices->add( (string) $id, (string) $title, (string) $content, (array) $options );// Boot things up.
$my_notices->boot();
```After you instantiate the `Notices` object using `$my_notices = new \Pressmodo\AdminNotices\Notices();` you can add new notices using the `add()` method.
The arguments of this method are:
| Parameter | Type | | Description
|---|---|---|---|
| `$id`| `string` | Required | A unique ID for this notice. **The ID can contain lowercase latin letters and underscores**. It is used to construct the option (or user-meta) key that will be strored in the database. |
| `$title` | `string` | Required | The title for your notice. If you don't want to use a title you can use set it to `false`. |
| `$message` | `string` | Required | The content for the notice you want to create. Please note that the only acceptable tags here are `The `$options` argument is an array that can have the following optional items:
| Key | Type | Value | Default
|---|---|---|---|
| `scope` | `string` | Can be `global` or `user`. Determines if the dismissed status will be saved as an option or user-meta. | `global` |
| `type` | `string` | Can be one of `info`, `success`, `warning`, `error`. | `info`
| `alt_style` | `bool` | Set to true if you want to use alternative styles. These have a background-color depending on the `type` argument - in contrast to the normal styles that use a white background. | `false` |
| `dismissible` | `bool` | Set to false to make the notice non dismissible. | `true` |
| `capability` | `string` | The user capability required to see the notice. For a list of all available capabilities please refer to the [Roles and Capabilities](https://wordpress.org/support/article/roles-and-capabilities/) article. | `edit_theme_options`
| `screens` | `array` | An array of screens where the notice will be displayed. For a reference of all available screen-IDs, refer to [this article](https://codex.wordpress.org/Plugin_API/Admin_Screen_Reference). | `[]` |
| `option_prefix` | `string` | The prefix that will be used to build the option (or user-meta) name. Can contain lowercase latin letters and underscores. The actual option is built by combining the `option_prefix` argument with the defined ID from the 1st argument of the `add()` method. | `pressmodo_notice_dismissed` |## Examples
You can add the following code within your theme's existing code.First we need to instantiate the `Notices` object:
```php
use Pressmodo\AdminNotices\Notices;$my_notices = new Notices();
```
To add a simple, default notice:
```php
$my_notices->add(
'my_theme_notice', // Unique ID.
esc_html__( 'Notice Title', 'textdomain' ), // The title for this notice.
esc_html__( 'Notice content', 'textdomain' ) // The content for this notice.
);
```
The above example will create a new notice that will only show on all dashboard pages. When the notice gets dismissed, a new option will be saved in the database with the key `pressmodo_notice_dismissed_my_theme_notice`. The key gets created by appending the `$id` to the default prefix for the option (`pressmodo_notice_dismissed`), separated by an underscore.To add a more customized notice:
```php
$my_notices->add(
'my_notice', // Unique ID.
esc_html__( 'Notice Title', 'textdomain' ), // The title for this notice.
esc_html__( 'Notice content', 'textdomain' ), // The content for this notice.
[
'scope' => 'user', // Dismiss is per-user instead of global.
'screens' => [ 'themes' ], // Only show notice in the "themes" screen.
'type' => 'warning', // Make this a warning (orange color).
'alt_style' => true, // Use alt styles.
'option_prefix' => 'my_theme', // Change the user-meta prefix.
]
);
```The above example will create a new notice that will only show in the "Themes" screen in the dashboard. When the notice gets dismissed, a new user-meta will be saved and the key for the stored user-meta will be `my_theme_my_notice`. The key gets created by appending the `$id` to our defined `option_prefix`, separated by an underscore.
The `Notices` class can be used to add multiple notices.
Once you have finished adding the notices, you will have to run the `boot` method so that the notices can be added to the dashboard:
```php
$my_notices->boot();
```To sum up all the above, a complete example of how to add an admin notice would look like this:
```php
$my_notices = new \Pressmodo\AdminNotices\Notices();
$my_notices->add( 'my_theme_notice', __( 'Title', 'textdomain' ), __( 'Content', 'textdomain' ) );
$my_notices->boot();
```## Autoloading
You'll need to use an autoloader with this. Ideally, this would be [Composer](https://getcomposer.org).
### Composer
From the command line:
```sh
composer require pressmodo/wp-admin-notices
```