key .= get_current_user_id(); $this->process(); } /** * Add message to show on admin_notices action * * @param string $message * @param string $type * @param bool $isDismissible */ public function push($message, $type = self::SUCCESS, $isDismissible = false){ $dismissible = $isDismissible? "is-dismissible" : ''; add_action('admin_notices', function() use ($message, $type, $dismissible){ echo "

{$message}

"; }); } /** * Save flash message to show during next request * * @param string $message * @param string $type * @param bool $isDismissible */ public function flash($message, $type = self::SUCCESS, $isDismissible = false){ $message = ['message' => $message, 'type' => $type, 'dismissible' => $isDismissible]; $messages = get_transient($this->key); if(!is_array($messages)){ $messages = []; } $messages[] = $message; set_transient($this->key, $messages, MINUTE_IN_SECONDS); } /** * Show flash messages */ private function process(){ $messages = get_transient($this->key); if(is_array($messages)){ delete_transient($this->key); foreach($messages as $message){ $this->push($message['message'], $message['type'], $message['dismissible']); } } } }