', $message) : $message; $handledTypes = ['info', 'warning', 'error', 'success']; if (in_array($type, $handledTypes)) { Miscellaneous::session(); if (empty($_SESSION['acycmessage'.$type]) || !in_array($message, $_SESSION['acycmessage'.$type])) { $_SESSION['acycmessage'.$type][] = $message; } } return true; } public static function displayMessages() { $types = ['success', 'info', 'warning', 'error']; Miscellaneous::session(); foreach ($types as $type) { $sessionKey = 'acycmessage'.$type; if (empty($_SESSION[$sessionKey])) { continue; } // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized -- sanitized immediately below via wp_kses_post $message = $_SESSION[$sessionKey]; unset($_SESSION[$sessionKey]); if (is_array($message)) { $message = array_map('wp_kses_post', $message); } else { $message = wp_kses_post($message); } Message::display($message, $type); } } public static function display($messages, $type = 'success', $close = true) { if (empty($messages)) return; if (!is_array($messages)) $messages = [$messages]; foreach ($messages as $id => $message) { echo '