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 * @since 6.0.0 * * @param string $notice Programmatic Notice Name * @return bool Notice Dismissed */ public function is_dismissed( $notice ) { if ( ! isset( $this->notices[ $notice ] ) ) { return false; } return true; } /** * Marks the given notice as dismissed * * @access public * @since 6.0.0 * * @param string $notice Programmatic Notice Name * @return null */ public function dismiss( $notice ) { $this->notices[ $notice ] = true; update_option( 'monsterinsights_notices', $this->notices ); } /** * Marks a notice as not dismissed * * @access public * @since 6.0.0 * * @param string $notice Programmatic Notice Name * @return null */ public function undismiss( $notice ) { unset( $this->notices[ $notice ] ); update_option( 'monsterinsights_notices', $this->notices ); } /** * Displays an inline notice with some MonsterInsights styling. * * @access public * @since 6.0.0 * * @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) */ 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(); ?>