'; foreach ($buttons as $i => $button) { $javascript = "jQuery(this).closest('div.notice').slideUp();"; //$javascript = "console.log(jQuery(this).closest('div.notice'));"; $javascript .= "jQuery.post(ajaxurl, " . "{'action': 'webpexpress_dismiss_global_message', " . "'id': '" . $id . "'})"; if (isset($button['javascript'])) { $javascript .= ".done(function() {" . $button['javascript'] . "});"; } if (isset($button['redirect-to-settings'])) { $javascript .= ".done(function() {location.href='" . Paths::getSettingsUrl() . "'});"; } $msg .= ''; } Messenger::printMessage($level, $msg); } public static function printMessages() { $ids = State::getState('dismissableGlobalMessageIds', []); foreach ($ids as $id) { include_once __DIR__ . '/../dismissable-global-messages/' . $id . '.php'; } } /** * Dismiss message * * @param string $id An identifier, ie "suggest_enable_pngs" */ public static function dismissMessage($id) { $messages = State::getState('dismissableGlobalMessageIds', []); $newQueue = []; foreach ($messages as $mid) { if ($mid == $id) { } else { $newQueue[] = $mid; } } State::setState('dismissableGlobalMessageIds', $newQueue); } /** * Dismiss message * * @param string $id An identifier, ie "suggest_enable_pngs" */ public static function dismissAll() { State::setState('dismissableGlobalMessageIds', []); } public static function processAjaxDismissGlobalMessage() { /* We have no security nonce here Dismissing a message is not harmful and dismissMessage($id) do anything harmful, no matter what you send in the "id" */ $id = sanitize_text_field($_POST['id']); self::dismissMessage($id); } }