%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /home/komfo908/compras.komforthouse.com.br/wp-content/plugins/hide-my-wp/classes/
Upload File :
Create Path :
Current File : /home/komfo908/compras.komforthouse.com.br/wp-content/plugins/hide-my-wp/classes/Error.php

<?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
	 *
	 * @param  string  $error
	 * @param  string  $type
	 * @param  bool  $ignore
	 *
	 * @return void
	 * @deprecated changed with setNotification for multiple usage
	 */
	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_CAPABILITY ) ) {
			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;
		}
	}

}

Zerion Mini Shell 1.0