thanks-to-it/

wp-admin-notices

轻松管理WordPress管理通知

dev-master 2019-02-21 22:45 UTC

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' ), )
  • 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