OwlCyberSecurity - MANAGER
Edit File: notice.php
<?php /** * Notices admin class. * * Handles retrieving whether a particular notice has been dismissed or not, * as well as marking a notice as dismissed. * * @since 6.0.0 * * @package MonsterInsights * @subpackage Notices * @author Chris Christoff */ // Exit if accessed directly if ( ! defined( 'ABSPATH' ) ) { exit; } final class MonsterInsights_Notice_Admin { /** * Holds all dismissed notices * * @access public * @since 6.0.0 * @var array $notices Array of dismissed notices. */ public $notices; /** * Primary class constructor. * * @access public * @since 6.0.0 */ public function __construct() { // Populate $notices $this->notices = get_option( 'monsterinsights_notices' ); if ( ! is_array( $this->notices ) ) { $this->notices = array(); } } /** * Checks if a given notice has been dismissed or not * * @access public * * @param string $notice Programmatic Notice Name * * @return bool Notice Dismissed * @since 6.0.0 * */ public function is_dismissed( $notice ) { if ( ! isset( $this->notices[ $notice ] ) ) { return false; } return true; } /** * Marks the given notice as dismissed * * @access public * * @param string $notice Programmatic Notice Name * * @return null * @since 6.0.0 * */ public function dismiss( $notice ) { $this->notices[ $notice ] = true; update_option( 'monsterinsights_notices', $this->notices ); } /** * Marks a notice as not dismissed * * @access public * * @param string $notice Programmatic Notice Name * * @return null * @since 6.0.0 * */ public function undismiss( $notice ) { unset( $this->notices[ $notice ] ); update_option( 'monsterinsights_notices', $this->notices ); } /** * Displays an inline notice with some MonsterInsights styling. * * @access public * * @param string $notice Programmatic Notice Name * @param string $title Title * @param string $message Message * @param string $type Message Type (updated|warning|error) - green, yellow/orange and red respectively. * @param string $button_text Button Text (optional) * @param string $button_url Button URL (optional) * @param bool $is_dismissible User can Dismiss Message (default: false) * * @since 6.0.0 * */ public function display_inline_notice( $name, $title, $message, $type = 'success', $is_dismissible = false, $args = array() ) { /* Available/Planned $args options * $args = array( * 'primary' => array( * 'text' => '', * 'url' => '', * 'target' => '', * 'class' => 'button button-primary', * ), * 'secondary' => array( * 'text' => '', * 'url' => '', * 'target' => '', * 'class' => 'button button-secondary', * ), * 'skip_message_escape' => true // note: This param is for internal use only. Do not use as a developer. * ); */ // Check if the notice is dismissible, and if so has been dismissed. if ( $is_dismissible && $this->is_dismissed( $name ) ) { // Nothing to show here, return! return ''; } $dismissible = ( $is_dismissible ) ? ' is-dismissible' : ''; // Display inline notice ob_start(); ?> <div class="monsterinsights-notice <?php echo 'monsterinsights-' . esc_attr( $type ) . '-notice' . esc_attr($dismissible); ?>" data-notice="<?php echo esc_attr( $name ); ?>"> <div class="monsterinsights-notice-icon <?php echo 'monsterinsights-' . esc_attr( $type ) . '-notice-icon' ?>"> </div> <div class="monsterinsights-notice-text <?php echo 'monsterinsights-' . esc_attr( $type ) . '-notice-text' ?>"> <?php // Title if ( ! empty ( $title ) ) { ?> <p class="monsterinsights-notice-title"><?php echo esc_html( $title ); ?></p> <?php } // Message if ( ! empty( $message ) ) { if ( empty( $args['skip_message_escape'] ) ) { ?> <p class="monsterinsights-notice-message"><?php echo esc_html( $message ); ?></p> <?php } else { ?> <p class="monsterinsights-notice-message"><?php echo $message; // phpcs:ignore ?></p> <?php } } // Primary Button if ( ! empty( $args['primary']['text'] ) ) { $text = ''; if ( ! empty( $args['primary']['text'] ) ) { $text = $args['primary']['text']; } $url = '#'; if ( ! empty( $args['primary']['url'] ) ) { $url = $args['primary']['url']; } $target = ''; if ( ! empty( $args['primary']['target'] ) && $args['primary']['target'] === 'blank' ) { $target = ' target="_blank" rel="noopener noreferrer"'; } $class = 'button button-primary'; if ( ! empty( $args['primary']['class'] ) ) { $class = ' class="' . $args['primary']['class'] . '"'; } ?> <a href="<?php echo esc_url( $url ); ?>"<?php echo esc_attr($target); ?><?php echo esc_attr($class); ?>><?php echo esc_html( $text ); ?></a> <?php } // Secondary Button if ( ! empty( $args['secondary']['text'] ) ) { $text = ''; if ( ! empty( $args['secondary']['text'] ) ) { $text = $args['secondary']['text']; } $url = '#'; if ( ! empty( $args['secondary']['url'] ) ) { $url = $args['secondary']['url']; } $target = ''; if ( ! empty( $args['secondary']['target'] ) && $args['secondary']['target'] === 'blank' ) { $target = ' target="_blank" rel="noopener noreferrer"'; } $class = 'button button-secondary'; if ( ! empty( $args['secondary']['class'] ) ) { $class = ' class="' . $args['secondary']['class'] . '"'; } ?> <a href="<?php echo esc_url( $url ); ?>"<?php echo esc_attr($target); ?><?php echo esc_attr($class); ?>><?php echo esc_html( $text ); ?></a> <?php } // Dismiss Button if ( $is_dismissible ) { ?> <button type="button" class="notice-dismiss<?php echo esc_attr($dismissible); ?>"> <span class="screen-reader-text"> <?php esc_html_e( 'Dismiss this notice', 'google-analytics-for-wordpress' ); ?> </span> </button> <?php } ?> </div> </div> <?php return ob_get_clean(); } }