digiom/wotices

WordPress 通知

1.1.1 2023-06-23 12:23 UTC

This package is auto-updated.

Last update: 2024-09-23 15:10:30 UTC


README

WordPress 中处理通知的库。

使用

使用时需要使用带有参数的 Manager 类对象进行初始化。该管理器负责管理所有通知,并且可以继承。

初始化

// уникальное имя, используется для уникальности данных
$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() 方法。

请使用您觉得更方便的方法。

通过创建通知对象

// уникальный идентификатор уведомления
$notice_id = 'test-info';

// создаем уведомление
$notice = new InfoNotice($notice_id);

// Требуемые параметры
$notice->setId('идентификатор уведомления, строка или число');
$notice->setData('Наименование уведомления, строка до 255 символов');

// добавляем уведомление
$wotices->add($notice, $args);

通过管理器

$args = 
[
    'id' => 'unique_id' // Уникальный идентификатор уведомления.
    'type' => 'info' // Тип уведомления.
    'data' => 'Наименование уведомления, можно с html тегами' // Наименование уведомления.
    'extra_data' => 'расширенный контент, можно с html тегами' // Расширенный контент, выводимый после наименования.
    'prefix' => '' // Набор символов, добавляемых перед идентификатором уведомления.
    'dismissible' => false // Разрешить ли пользователю удалять уведомление.
];

$wotices->create($args);

保存通知

默认情况下,所有添加的通知都放置在临时内存中。但显示某些通知可能需要保存。

例如,可能需要保存通知以供用户在执行操作后,将其转移到另一页面上显示。或者,我们需要为所有应拒绝通知的用户创建通知。

删除通知

某些通知具有存储属性。根据上下文,这些通知可以被删除。

为通知注册自己的类型

当标准通知输出功能不足时,可以注册自己的唯一类型并使用它。

可以通过 registerType() 方法实现

$wotices->registerType('unique_name', 'Namespace\ClassName');

现在,可以在代码中使用 unique_name 类型的通知。

钩子(过滤器和动作)

为了提供更大的灵活性,库中增加了钩子(过滤器和动作)。每个钩子的前缀根据创建管理器实例时的唯一值来分配。

过滤器: (prefix)_manager_args

用于过滤创建通知管理器实例时的参数。

过滤器: (prefix)_manager_create_notices_args

在通知管理器中使用方法创建通知之前,会应用此过滤器。