| @@ -14,9 +14,9 @@ | ||
| 14 | 14 | |
| 15 | 15 | private static $messages = false; |
| 16 | 16 | |
| 17 | 17 | /** |
| 18 | - * @param array | |
| 18 | + * @var array | |
| 19 | 19 | */ |
| 20 | 20 | private static $banner_messages; |
| 21 | 21 | |
| 22 | 22 | public function __construct( $for_parent = null ) { |
| @@ -47,9 +47,9 @@ | ||
| 47 | 47 | |
| 48 | 48 | /** |
| 49 | 49 | * @since 4.05 |
| 50 | 50 | * |
| 51 | - * @param false|string $filter | |
| 51 | + * @param false|array $filter | |
| 52 | 52 | */ |
| 53 | 53 | public function get_messages( $filter = false ) { |
| 54 | 54 | $messages = self::$messages; |
| 55 | 55 | if ( $filter === 'filter' ) { |
| @@ -139,9 +139,10 @@ | ||
| 139 | 139 | 'subject' => '', |
| 140 | 140 | 'icon' => 'frm_tooltip_icon', |
| 141 | 141 | 'cta' => '', |
| 142 | 142 | 'expires' => false, |
| 143 | - 'who' => 'all', // use 'free', 'personal', 'business', 'elite', 'grandfathered' | |
| 143 | + // Use 'free', 'personal', 'business', 'elite', 'grandfathered'. | |
| 144 | + 'who' => 'all', | |
| 144 | 145 | 'type' => '', |
| 145 | 146 | ); |
| 146 | 147 | |
| 147 | 148 | $message = array_merge( $defaults, $message ); |
| @@ -172,13 +173,13 @@ | ||
| 172 | 173 | |
| 173 | 174 | /** |
| 174 | 175 | * @return void |
| 175 | 176 | */ |
| 176 | - private function filter_messages( &$messages ) { | |
| 177 | + public function filter_messages( &$messages, $type = 'unread' ) { | |
| 177 | 178 | $user_id = get_current_user_id(); |
| 178 | 179 | foreach ( $messages as $k => $message ) { |
| 179 | 180 | $dismissed = isset( $message['dismissed'] ) && isset( $message['dismissed'][ $user_id ] ); |
| 180 | - if ( empty( $k ) || $this->is_expired( $message ) || $dismissed ) { | |
| 181 | + if ( empty( $k ) || $this->is_expired( $message ) || ( $type === 'dismissed' ) !== $dismissed ) { | |
| 181 | 182 | unset( $messages[ $k ] ); |
| 182 | 183 | } elseif ( ! $this->is_for_user( $message ) ) { |
| 183 | 184 | unset( $messages[ $k ] ); |
| 184 | 185 | } |