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 "
";
});
}
/**
* 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']);
}
}
}
}