[ Avaa Bypassed ]




Upload:

Command:

www-data@3.144.124.77: ~ $
<?php
/**
 * Handle all the errors in the plugin
 *
 * @file The Errors Handle file
 * @package HMWP/Error
 * @since 4.0.0
 *
 */

defined('ABSPATH') || die('Cheatin\' uh?');

class HMWP_Classes_Error {

    /**
     *
     * Array of errors generated by the plugin
     *
     * @var array
     */
    private static $errors = array();

    public function __construct() {
        add_action('admin_notices', array($this, 'hookNotices'));
    }

    /**
     * Set the notification in WordPress
     * @deprecated changed with setNotification for multiple usage
     * @param string $error
     * @param string $type
     * @param bool $ignore
     * @return void
     */
    public static function setError($error = '', $type = 'notice', $ignore = true)
    {
        self::setNotification($error, $type, $ignore);
    }
    /**
     * Set the notification in WordPress
     *
     * @param string $error Error message to show in plugin
     * @param string $type Define the notification class 'notice', 'warning', 'dander'. Default 'notice'
     * @param bool $ignore Let user ignore this notification
     * @return void
     */
    public static function setNotification($error = '', $type = 'notice', $ignore = true)
    {
        if($type == 'notice' && $ignore && $ignore_errors = (array)HMWP_Classes_Tools::getOption('ignore_errors')) {
            if(!empty($ignore_errors) && in_array(strlen($error), $ignore_errors)) {
               return;
            }
        }

        self::$errors[md5($error)] = array(
            'type' => $type,
            'ignore' => $ignore,
            'text' => $error);
    }

    /**
     * Return if error
     *
     * @return bool
     */
    public static function isError()
    {
        return !empty(self::$errors);
    }

    /**
     * This hook will show the error in WP header
     */
    public function hookNotices()
    {
        if (is_array(self::$errors) 
            && ((is_string(HMWP_Classes_Tools::getValue('page', '')) && stripos(HMWP_Classes_Tools::getValue('page', ''), _HMWP_NAMESPACE_) !== false) 
            || (is_string(HMWP_Classes_Tools::getValue('plugin', '')) && stripos(HMWP_Classes_Tools::getValue('plugin', ''), dirname(HMWP_BASENAME)) !== false))
        ) {
            foreach (self::$errors as $error) {
                self::showError($error['text'], $error['type'], $error['ignore']);
            }
        }
        self::$errors = array();
    }

    /**
     * Show the notices to WP
     *
     * @param string $message Error message to show in plugin
     * @param string $type Define the notification class 'notice', 'warning', 'dander'. Default 'notice'
     * @param bool $ignore Let user ignore this notification
     */
    public static function showError($message, $type = 'notice', $ignore = true)
    {

        //Initialize WordPress Filesystem
        $wp_filesystem = HMWP_Classes_ObjController::initFilesystem();

        if ($wp_filesystem->exists(_HMWP_THEME_DIR_ . 'Notices.php')) {
            include _HMWP_THEME_DIR_ . 'Notices.php';
        } else {
            echo wp_kses_post($message);
        }
    }

    /**
     * Run the actions on submit
     *
     * @throws Exception
     */
    public function action()
    {

        if (!HMWP_Classes_Tools::userCan('hmwp_manage_settings')) {
            return;
        }

        switch (HMWP_Classes_Tools::getValue('action')) {
        case 'hmwp_ignoreerror':
            $hash = HMWP_Classes_Tools::getValue('hash');

            $ignore_errors = (array)HMWP_Classes_Tools::getOption('ignore_errors');

            array_push($ignore_errors, $hash);
            $ignore_errors = array_unique($ignore_errors);
            $ignore_errors = array_filter($ignore_errors);

            HMWP_Classes_Tools::saveOptions('ignore_errors', $ignore_errors);

            wp_redirect(remove_query_arg(array('hmwp_nonce', 'action', 'hash')));

            break;
        }
    }

}

Filemanager

Name Type Size Permission Actions
Action.php File 6.38 KB 0644
Debug.php File 2.66 KB 0644
DisplayController.php File 2.98 KB 0644
Error.php File 3.85 KB 0644
FrontController.php File 3.69 KB 0644
HookController.php File 2.71 KB 0644
ObjController.php File 5.61 KB 0644
Tools.php File 71.25 KB 0644