';
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);
}
}