Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/digiom/wotices
Notices for WordPress
https://github.com/digiom/wotices
notices wordpress wordpress-development wordpress-php-library wotices
Last synced: about 1 month ago
JSON representation
Notices for WordPress
- Host: GitHub
- URL: https://github.com/digiom/wotices
- Owner: digiom
- Created: 2021-11-17T17:44:30.000Z (about 3 years ago)
- Default Branch: main
- Last Pushed: 2023-06-23T12:24:25.000Z (over 1 year ago)
- Last Synced: 2024-10-10T04:02:16.374Z (about 1 month ago)
- Topics: notices, wordpress, wordpress-development, wordpress-php-library, wotices
- Language: PHP
- Homepage:
- Size: 23.4 KB
- Stars: 3
- Watchers: 0
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: readme.md
Awesome Lists containing this project
README
# Notices for WordPress
Библиотека для работы с уведомлениями в WordPress.
## Использование
Для использования нужно инициализировать объект класса Manager с параметрами.
Данный менеджер управляет всеми уведомлениями и его можно наследовать.### Инициализация
```PHP
// уникальное имя, используется для уникальности данных
$name = 'my_plugin_name_notices';// аргументы менеджера
$args =
[
'auto_save' => true, // автоматическое сохранение уведомлений, которые должны быть сохранены в деструкторе
'all_admin_notices' => false, // работает точно так же, как admin_notices, но имеет другое название. Наверное, для наглядности цели использования в коде плагина, также возможно в будущем будут работать в разных условиях.
'network_admin_notices' => false, //используется для работы с мультисайтовой сборкой, сообщение будет выводиться для администратора сети.
'user_admin_notices' => false, //используется для работы с мультисайтовой сборкой, сообщение будет выводиться для администратора сайта сети.
];// инициализируем
$wotices = new Manager($name, $args);
```### Добавление уведомлений
Два способа добавления:
- Через создание отдельного объекта уведомления с дальнейшим добавлением в менеджер.
- Через менеджер с помощью метода create().Необходимо использовать тот способ, который удобнее.
#### Через создание объекта уведомления```PHP
// уникальный идентификатор уведомления
$notice_id = 'test-info';// создаем уведомление
$notice = new InfoNotice($notice_id);// Требуемые параметры
$notice->setId('идентификатор уведомления, строка или число');
$notice->setData('Наименование уведомления, строка до 255 символов');// добавляем уведомление
$wotices->add($notice, $args);
```#### Через менеджер
```PHP
$args =
[
'id' => 'unique_id' // Уникальный идентификатор уведомления.
'type' => 'info' // Тип уведомления.
'data' => 'Наименование уведомления, можно с html тегами' // Наименование уведомления.
'extra_data' => 'расширенный контент, можно с html тегами' // Расширенный контент, выводимый после наименования.
'prefix' => '' // Набор символов, добавляемых перед идентификатором уведомления.
'dismissible' => false // Разрешить ли пользователю удалять уведомление.
];$wotices->create($args);
```### Сохранение уведомлений
По умолчанию все добавляемые уведомления размещаются во временной памяти. Но показ некоторых уведомлений требует сохранения.Например, может потребоваться сохранить уведомление для пользователя совершившего действие
которое привело к его переносу на другую страницу с показом уведомления именно там.
Или же нам нужно создать уведомление для всех пользователей, которые должны отклонить уведомление.### Удаление уведомлений
Некоторые уведомления имеют свойство хранения. Такие уведомления, в зависимости от контекста можно удалять.
## Регистрация своего типа для уведомлений
Когда не хватает стандартных возможностей для вывода уведомлений, можно зарегистрировать свой уникальный тип и использовать его.
Сделать это возможно с помощью метода registerType():
```PHP
$wotices->registerType('unique_name', 'Namespace\ClassName');
```Все, теперь уведомления типа unique_name можно использовать в коде.
## Хуки (фильтры и действия)
Для еще большей гибкости библиотеки, были добавлены хуки и действия. Префикс у каждого хука назначается на основании уникального значения при создании экземпляра менеджера.
### Фильтр: (prefix)_manager_args
Предназначен для фильтрации аргументов при создании экземпляра менеджера уведомлений.
### Фильтр: (prefix)_manager_create_notices_args
Перед созданием уведомления с помощью метода в менеджере уведомлений происходит применение данного фильтра.