benecaster_before_notice_display
Filters each admin notice immediately before it is included in the notices REST response. Fires once per display context — once for `’bell’` and again for `’bar’` when a notice has `display_mode = ‘both’`. Return the `$notice` array to include it, optionally modified, or return `null` or `false` to suppress it from that context.
For notices with `display_mode = ‘both’`, the filter fires twice in sequence. The second call receives the `$notice` array as returned by the first, so modifications made in the `bell` context are visible during the `bar` context call. The filter runs after the user’s minimum-tier preference is applied — notices already filtered out by tier are not passed to this hook.
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
$notice |
array |
— | Notice data array |
$context |
string |
— | Display context: 'bell' or 'bar' |
Returns:
array|null|false
Examples
Suppress all notices from the admin bar
add_filter( 'benecaster_before_notice_display', function( $notice, $context ) {
if ( 'bar' === $context ) {
return null;
}
return $notice;
}, 10, 2 );
Suppress marketing notices from the bar only
add_filter(
'benecaster_before_notice_display',
function ( array $notice, string $context ): ?array {
if ( 'marketing' === $notice['tier'] && 'bar' === $context ) {
return null; // Keep in bell panel, never in the bar.
}
return $notice;
},
10, 2
);
Override action label for a specific notice
add_filter(
'benecaster_before_notice_display',
function ( array $notice, string $context ): array {
if ( 'feed_sync_failures' === $notice['notice_id'] && 'bar' === $context ) {
$notice['action_label'] = __( 'Fix now', 'my-addon' );
}
return $notice;
},
10, 2
);
Suppress a notice when an add-on handles it
add_filter(
'benecaster_before_notice_display',
function ( array $notice, string $context ): ?array {
if ( 'setup_wizard_nag' === $notice['notice_id'] && my_addon_wizard_complete() ) {
return null;
}
return $notice;
},
10, 2
);
Notes
Suppressing a notice from one context downgrades its display mode rather than hiding it entirely. If you suppress 'bar' but allow 'bell', the response includes the notice with display_mode = 'bell'.
Affects
- GET /benecaster/v1/notices REST response