thanks-to-it / wp-admin-notices
轻松管理WordPress管理通知
dev-master
2019-02-21 22:45 UTC
Requires
- php: >=5.3.2
- composer/installers: >=v1.2.0
This package is auto-updated.
Last update: 2024-09-22 10:59:28 UTC
README
一个简单便捷的WordPress管理通知创建工具,可以持久关闭。除此之外,它还有一些酷炫的功能
- 仅对关闭通知的用户隐藏通知。
- 在特定情况下显示通知,例如在插件更新或激活,或在特定的管理屏幕ID,或在$_GET / $_POST请求时显示
- 创建您自己的特殊案例,以确定何时/在哪里显示通知
简单使用
add_action( 'admin_notices', function () { $notices_manager = \ThanksToIT\WPAN\get_notices_manager(); $notices_manager->create_notice( array( 'id' => 'my-notice', 'content' => '<p>My Notice</p>', ) ); } );
注意: 默认情况下,此库会使得通知持久,意味着用户关闭通知后它们不会再次显示,除非它们过期
初始化
为了使其完美运行,您需要这样 初始化 它
add_action( 'wp_ajax_' . 'tttwpan_dismiss_persist', array( 'ThanksToIT\WPAN\Notices_Manager', 'ajax_dismiss' ) ); add_action( 'activated_plugin', array( 'ThanksToIT\WPAN\Notices_Manager', 'set_activated_plugin' ) ); add_action( 'upgrader_process_complete', array( 'ThanksToIT\WPAN\Notices_Manager', 'set_upgrader_process' ), 10, 2 );
并且 非常重要 在您的插件/主题上的任何其他钩子之前调用这些函数。但别担心,当在适当的钩子上调用时,此库才会加载
create_notice() 参数
- id (String) - 标识通知。
- type (String) - 通知类型,用于设置通知类以确定其颜色。可能的值是
'notice-info','notice-warning','notice-success','notice-error','notice-info'。默认值是'notice-info'。 - content (String) - 通知内容。
- dismissible (Boolean) - 如果通知应该可关闭。换句话说,如果您可以关闭它。默认值是
true。 - dismissal_expiration (int) - 通知保持关闭的时间(秒)。大于零的值将使通知在关闭后持续存在。如果您设置为 0,则它将不再持续存在。默认值是
MONTH_IN_SECONDS。 - display_on (array) - 通知应显示的情况/时间。以下是一些可能的值
- screen_id (array)。在特定的管理屏幕ID上显示通知。例如:
'screen_id' => array( 'plugins' )。 - activated_plugin (array)。如果某些插件被激活,则显示。例如:
'activated_plugin' => array('akismet/akismet.php')。 - updated_plugin (array)。如果某些插件被更新,则显示。例如:
'updated_plugin' => array('akismet/akismet.php')。 - request (array) - 在 $_GET 或 $_POST 值上显示。注意:它接受具有
'key'和'value'参数的数组数组的数组。例如:'request' => array( array( 'key' => 'show_notice', 'value' => '1' ), )。
- screen_id (array)。在特定的管理屏幕ID上显示通知。例如:
- keep_active_on (array) - 一旦满足 display_on 要求,则始终打开通知,直到用户关闭通知。默认值是
array( 'activated_plugin', 'updated_plugin' ),
示例
创建一个将在一周后关闭的通知
add_action( 'admin_notices', function () { $notices_manager = \ThanksToIT\WPAN\get_notices_manager(); $notices_manager->create_notice( array( 'id' => '1-week-notice', 'content' => '<p>1 week notice</p>', 'dismissal_expiration' => WEEK_IN_SECONDS, ) ); } );
创建一个仅在插件页面上显示的通知
add_action( 'admin_notices', function () { $notices_manager = \ThanksToIT\WPAN\get_notices_manager(); $notices_manager->create_notice( array( 'id' => 'plugins-page-notice', 'content' => '<p>plugins page notice</p>', 'display_on' => array( 'screen_id' => array( 'plugins' ), ) ) ); } );
在Akismet插件被激活后显示的通知
add_action( 'admin_notices', function () { $notices_manager = \ThanksToIT\WPAN\get_notices_manager(); $notices_manager->create_notice( array( 'id' => 'akismet-notice', 'content' => '<p>Akismet notice</p>', 'display_on' => array( 'activated_plugin' => array('akismet/akismet.php') ) ) ); } );
包安装(通过 Composer)
要安装此包,编辑您的 composer.json 文件
{ "require": { "thanks-to-it/wp-admin-notices": "dev-master" } }
现在运行
$ composer install