HEX
Server: Apache/2.4.65 (Debian)
System: Linux web6 5.10.0-36-amd64 #1 SMP Debian 5.10.244-1 (2025-09-29) x86_64
User: innocamp (1028)
PHP: 7.4.33
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: //home/cedarbrk/public_html/wp-content/plugins/webp-express/lib/classes/DismissableMessages.php
<?php

namespace WebPExpress;

use \WebPExpress\Option;
use \WebPExpress\State;
use \WebPExpress\Messenger;

class DismissableMessages
{

    /**
     *  Add dismissible message.
     *
     *  @param  string  $id  An identifier, ie "suggest_enable_pngs"
     */
    public static function addDismissableMessage($id)
    {
        $dismissableMessageIds = State::getState('dismissableMessageIds', []);

        // Ensure we do not add a message that is already there
        if (in_array($id, $dismissableMessageIds)) {
            return;
        }
        $dismissableMessageIds[] = $id;
        State::setState('dismissableMessageIds', $dismissableMessageIds);
    }

    public static function printDismissableMessage($level, $msg, $id, $gotItText = '')
    {
        if ($gotItText != '') {
            $javascript = "jQuery(this).closest('div.notice').slideUp();";
            //$javascript = "console.log(jQuery(this).closest('div.notice'));";
            $javascript .= "jQuery.post(ajaxurl, {'action': 'webpexpress_dismiss_message', 'id': '" . $id . "'});";

            $msg .= '<button type="button" class="button button-primary" onclick="' . $javascript . '" style="display:block; margin-top:20px">' . $gotItText . '</button>';
        }
        Messenger::printMessage($level, $msg);
    }

    public static function printMessages()
    {
        $ids = State::getState('dismissableMessageIds', []);
        foreach ($ids as $id) {
            include_once __DIR__ . '/../dismissable-messages/' . $id . '.php';
        }
    }

    /**
     *  Dismiss message
     *
     *  @param  string  $id  An identifier, ie "suggest_enable_pngs"
     */
    public static function dismissMessage($id) {
        $messages = State::getState('dismissableMessageIds', []);
        $newQueue = [];
        foreach ($messages as $mid) {
            if ($mid == $id) {

            } else {
                $newQueue[] = $mid;
            }
        }
        State::setState('dismissableMessageIds', $newQueue);
    }

    /**
     *  Dismiss message
     *
     *  @param  string  $id  An identifier, ie "suggest_enable_pngs"
     */
    public static function dismissAll() {
        State::setState('dismissableMessageIds', []);
    }

    public static function processAjaxDismissMessage() {
        /*
        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);
    }


}