mirror of
https://github.com/duckdev/wp-flash-notices.git
synced 2025-11-21 09:06:04 +08:00
Compare commits
7 commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d3769c722f | ||
|
|
5f73e11803 | ||
|
|
cbf03b53d0 | ||
|
|
8bb8a34a4f | ||
|
|
4eb163f91f | ||
|
|
07098f3a56 | ||
|
|
62273eb3bd |
3 changed files with 75 additions and 26 deletions
|
|
@ -81,3 +81,11 @@ By default all notices are shown within single site admin screens. If you have M
|
||||||
// Register new info notice to the queue.
|
// Register new info notice to the queue.
|
||||||
$notices->add( 'custom-success', 'This is a custom dismissible notice.', 'success', true, true );
|
$notices->add( 'custom-success', 'This is a custom dismissible notice.', 'success', true, true );
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
|
### Frontend Compatibility
|
||||||
|
If you'd like to print the notices in the front-end, then use the below action to your template.
|
||||||
|
|
||||||
|
```php
|
||||||
|
do_action( 'front_notices' );
|
||||||
|
```
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
{
|
{
|
||||||
"name": "duckdev/wp-flash-notices",
|
"name": "duckdev/wp-flash-notices",
|
||||||
"description": "WordPress admin notices as flash notice using transient API to display after page reload.",
|
"description": "WordPress admin notices as flash notice using transient API to display after page reload.",
|
||||||
|
"version": "1.0.1",
|
||||||
"license": "GPL-2.0+",
|
"license": "GPL-2.0+",
|
||||||
"authors": [
|
"authors": [
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -64,12 +64,27 @@ class WP_Flash_Notices {
|
||||||
*
|
*
|
||||||
* @since 1.0.0
|
* @since 1.0.0
|
||||||
*/
|
*/
|
||||||
public function __construct( $transient = 'jj_wp_flash_notices' ) {
|
public function __construct( $transient = 'duckdev_wp_flash_notices' ) {
|
||||||
// Make sure you set this unique, otherwise all notices will mixup.
|
// Make sure you set this unique, otherwise all notices will mixup.
|
||||||
$this->transient = $transient;
|
$this->transient = $transient;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Filter hook to add new notice types.
|
||||||
|
*
|
||||||
|
* @param array $types Notice types (default wp notices).
|
||||||
|
* @param string $transient Transient name.
|
||||||
|
*
|
||||||
|
* @since 1.0.1
|
||||||
|
*/
|
||||||
|
$this->types = apply_filters(
|
||||||
|
'wp_flash_notices_notice_types',
|
||||||
|
$this->types,
|
||||||
|
$this->transient
|
||||||
|
);
|
||||||
|
|
||||||
// Render notices using WP action.
|
// Render notices using WP action.
|
||||||
add_action( 'admin_notices', [ $this, 'render' ] );
|
add_action( 'admin_notices', [ $this, 'render' ] );
|
||||||
|
add_action( 'front_notices', [ $this, 'render' ] );
|
||||||
add_action( 'network_admin_notices', [ $this, 'render' ] );
|
add_action( 'network_admin_notices', [ $this, 'render' ] );
|
||||||
|
|
||||||
// Save all queued notices to transient.
|
// Save all queued notices to transient.
|
||||||
|
|
@ -106,11 +121,13 @@ class WP_Flash_Notices {
|
||||||
/**
|
/**
|
||||||
* Filter hook to modify notice item before adding to queue.
|
* Filter hook to modify notice item before adding to queue.
|
||||||
*
|
*
|
||||||
* @param array $notice Notice item.
|
* @param string $key Notice key.
|
||||||
|
* @param array $notice Notice item.
|
||||||
|
* @param string $transient Transient name to identify the plugin.
|
||||||
*
|
*
|
||||||
* @since 1.0.0
|
* @since 1.0.0
|
||||||
*/
|
*/
|
||||||
apply_filters( 'wp_flash_notices_notice_item', $notice );
|
apply_filters( 'wp_flash_notices_notice_item', $key, $notice, $this->transient );
|
||||||
|
|
||||||
// Multisite network admin notices.
|
// Multisite network admin notices.
|
||||||
if ( is_multisite() && $network ) {
|
if ( is_multisite() && $network ) {
|
||||||
|
|
@ -126,14 +143,16 @@ class WP_Flash_Notices {
|
||||||
* Note: The notice item is not yet added to the transient when this
|
* Note: The notice item is not yet added to the transient when this
|
||||||
* action hook is fired.
|
* action hook is fired.
|
||||||
*
|
*
|
||||||
* @param array $notice Notice item inserted.
|
* @param array $notice Notice item inserted.
|
||||||
* @param array $notices Current notice queue.
|
* @param string $transient Transient name to identify the plugin.
|
||||||
* @param array $network_notices Current network notices queue.
|
* @param array $notices Current notice queue.
|
||||||
|
* @param array $network_notices Current network notices queue.
|
||||||
*
|
*
|
||||||
* @since 1.0.0
|
* @since 1.0.0
|
||||||
*/
|
*/
|
||||||
do_action( 'wp_flash_notices_after_queue_insert',
|
do_action( 'wp_flash_notices_after_queue_insert',
|
||||||
$notice,
|
$notice,
|
||||||
|
$this->transient,
|
||||||
$this->notices,
|
$this->notices,
|
||||||
$this->network_notices
|
$this->network_notices
|
||||||
);
|
);
|
||||||
|
|
@ -163,12 +182,14 @@ class WP_Flash_Notices {
|
||||||
/**
|
/**
|
||||||
* Action hook fired after saving queued notices to transient.
|
* Action hook fired after saving queued notices to transient.
|
||||||
*
|
*
|
||||||
* @param array $notices Notice queue.
|
* @param string $transient Transient name to identify the plugin.
|
||||||
* @param array $network_notices Network notices queue.
|
* @param array $notices Notice queue.
|
||||||
|
* @param array $network_notices Network notices queue.
|
||||||
*
|
*
|
||||||
* @since 1.0.0
|
* @since 1.0.0
|
||||||
*/
|
*/
|
||||||
do_action( 'wp_flash_notices_after_save',
|
do_action( 'wp_flash_notices_after_save',
|
||||||
|
$this->transient,
|
||||||
$this->notices,
|
$this->notices,
|
||||||
$this->network_notices
|
$this->network_notices
|
||||||
);
|
);
|
||||||
|
|
@ -193,13 +214,19 @@ class WP_Flash_Notices {
|
||||||
/**
|
/**
|
||||||
* Filter hook to modify the notice item.
|
* Filter hook to modify the notice item.
|
||||||
*
|
*
|
||||||
* @param array $notice Current notice.
|
* @param array $notice Current notice.
|
||||||
* @param array $notices Notice list.
|
* @param string $transient Transient name to identify the plugin.
|
||||||
* @param bool $network Is network notice?.
|
* @param array $notices Notice list.
|
||||||
|
* @param bool $network Is network notice?.
|
||||||
*
|
*
|
||||||
* @since 1.0.0
|
* @since 1.0.0
|
||||||
*/
|
*/
|
||||||
return apply_filters( 'wp_flash_notices_get', $notice, $notices, $network );
|
return apply_filters( 'wp_flash_notices_get',
|
||||||
|
$notice,
|
||||||
|
$this->transient,
|
||||||
|
$notices,
|
||||||
|
$network
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -223,12 +250,17 @@ class WP_Flash_Notices {
|
||||||
/**
|
/**
|
||||||
* Filter hook to modify the fetched notices array.
|
* Filter hook to modify the fetched notices array.
|
||||||
*
|
*
|
||||||
* @param array $notices Notice list.
|
* @param array $notices Notice list.
|
||||||
* @param bool $network Is network notice?.
|
* @param string $transient Transient name to identify the plugin.
|
||||||
|
* @param bool $network Is network notice?.
|
||||||
*
|
*
|
||||||
* @since 1.0.0
|
* @since 1.0.0
|
||||||
*/
|
*/
|
||||||
return apply_filters( 'wp_flash_notices_fetch', $notices, $network );
|
return apply_filters( 'wp_flash_notices_fetch',
|
||||||
|
$notices,
|
||||||
|
$this->transient,
|
||||||
|
$network
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -253,11 +285,12 @@ class WP_Flash_Notices {
|
||||||
/**
|
/**
|
||||||
* Action hook fired after clearing notices from transient.
|
* Action hook fired after clearing notices from transient.
|
||||||
*
|
*
|
||||||
* @param bool $network Network notice?.
|
* @param string $transient Transient name to identify the plugin.
|
||||||
|
* @param bool $network Network notice?.
|
||||||
*
|
*
|
||||||
* @since 1.0.0
|
* @since 1.0.0
|
||||||
*/
|
*/
|
||||||
do_action( 'wp_flash_notices_after_clear', $network );
|
do_action( 'wp_flash_notices_after_clear', $this->transient, $network );
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -278,11 +311,12 @@ class WP_Flash_Notices {
|
||||||
/**
|
/**
|
||||||
* Filter hook to disable auto rendering of admin notices.
|
* Filter hook to disable auto rendering of admin notices.
|
||||||
*
|
*
|
||||||
* @param bool $enable Should render.
|
* @param bool $enable Should render.
|
||||||
|
* @param string $transient Transient name to identify the plugin.
|
||||||
*
|
*
|
||||||
* @since 1.0.0
|
* @since 1.0.0
|
||||||
*/
|
*/
|
||||||
if ( apply_filters( 'wp_flash_notices_auto_render', true ) ) {
|
if ( apply_filters( 'wp_flash_notices_auto_render', true, $this->transient ) ) {
|
||||||
$network = is_network_admin();
|
$network = is_network_admin();
|
||||||
|
|
||||||
// Get all notices.
|
// Get all notices.
|
||||||
|
|
@ -316,12 +350,17 @@ class WP_Flash_Notices {
|
||||||
*
|
*
|
||||||
* We are using this hook to clear all notices after rendering.
|
* We are using this hook to clear all notices after rendering.
|
||||||
*
|
*
|
||||||
* @param array $notices Notices array.
|
* @param string $transient Transient name to identify the plugin.
|
||||||
* @param bool $network Is network admin?.
|
* @param array $notices Notices array.
|
||||||
|
* @param bool $network Is network admin?.
|
||||||
*
|
*
|
||||||
* @since 1.0.0
|
* @since 1.0.0
|
||||||
*/
|
*/
|
||||||
do_action( 'wp_flash_notices_after_render', $notices, $network );
|
do_action( 'wp_flash_notices_after_render',
|
||||||
|
$this->transient,
|
||||||
|
$notices,
|
||||||
|
$network
|
||||||
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -345,11 +384,12 @@ class WP_Flash_Notices {
|
||||||
* notices using `clear` method. Otherwise notices will be there
|
* notices using `clear` method. Otherwise notices will be there
|
||||||
* and there no point in using this library anymore.
|
* and there no point in using this library anymore.
|
||||||
*
|
*
|
||||||
* @param bool $enable Should clear automatically after render?.
|
* @param bool $enable Should clear automatically after render?.
|
||||||
|
* @param string $transient Transient name to identify the plugin.
|
||||||
*
|
*
|
||||||
* @since 1.0.0
|
* @since 1.0.0
|
||||||
*/
|
*/
|
||||||
if ( apply_filters( 'wp_flash_notices_auto_clear', true ) ) {
|
if ( apply_filters( 'wp_flash_notices_auto_clear', true, $this->transient ) ) {
|
||||||
// Clear all notices.
|
// Clear all notices.
|
||||||
$this->clear( $network );
|
$this->clear( $network );
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue