| Server IP : 172.67.159.97 / Your IP : 216.73.217.154 Web Server : nginx/1.24.0 System : Linux wordpress-sites 6.8.0-134-generic #134-Ubuntu SMP PREEMPT_DYNAMIC Fri Jun 26 18:43:11 UTC 2026 x86_64 User : www-data ( 33) PHP Version : 8.1.34 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /var/www/rebeccaone.com/wp-content/plugins/envira-gallery/src/Admin/ |
Upload File : |
<?php
/**
* Notices admin class.
*
* Handles retrieving whether a particular notice has been dismissed or not,
* as well as marking a notice as dismissed.
*
* @since 1.3.5
*
* @package Envira_Gallery
* @author Envira Team
*/
namespace Envira\Admin;
// Exit if accessed directly.
if ( ! defined( 'ABSPATH' ) ) {
exit;
}
/**
* Notices admin class.
*
* Handles retrieving whether a particular notice has been dismissed or not,
* as well as marking a notice as dismissed.
*
* @since 1.3.5
*
* @package Envira_Gallery
* @author Envira Team
*/
class Notices {
/**
* Holds all dismissed notices
*
* @since 1.3.5
*
* @var array
*/
public $notices;
/**
* Primary class constructor.
*
* @since 1.3.5
*/
public function __construct() {
// Populate $notices.
$this->notices = get_option( 'envira_gallery_notices' );
if ( ! is_array( $this->notices ) ) {
$this->notices = [];
}
}
/**
* Checks if a given notice has been dismissed or not
*
* @since 1.3.5
*
* @param string $notice Programmatic Notice Name.
* @param bool $check_transient_only Only Check Transient.
* @return bool Notice Dismissed
*/
public function is_dismissed( $notice, $check_transient_only = false ) {
if ( $check_transient_only ) {
$results = get_transient( 'eg_n_' . $notice );
if ( false === $results || empty( $results ) ) {
return false;
}
} elseif ( ! $check_transient_only && ! isset( $this->notices[ $notice ] ) ) {
return false;
}
return true;
}
/**
* Marks the given notice as dismissed
*
* @since 1.3.5
*
* @param string $notice Programmatic Notice Name.
* @param bool $seconds Seconds.
* @return void
*/
public function dismiss( $notice, $seconds = false ) {
if ( intval( $seconds ) > 0 ) {
// use transient, because we want this to come back.
set_transient( 'eg_n_' . $notice, time(), $seconds );
} else {
// use option, as nature intended.
$this->notices[ $notice ] = true;
update_option( 'envira_gallery_notices', $this->notices );
}
}
/**
* Marks a notice as not dismissed
*
* @since 1.3.5
*
* @param string $notice Programmatic Notice Name.
* @return void
*/
public function undismiss( $notice ) {
unset( $this->notices[ $notice ] );
update_option( 'envira_gallery_notices', $this->notices );
}
/**
* Displays an inline notice with some Envira styling.
*
* @since 1.3.5
*
* @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: true).
* @param integer $seconds Number of seconds transient is good for, after expires then notice re-appears - 0 means no transient, it's an option.
* @param bool $updated If updated class is added WordPress moves it into the notices area in the admin.
*/
public function display_inline_notice( $notice, $title, $message, $type = 'success', $button_text = '', $button_url = '', $is_dismissible = true, $seconds = false, $updated = true ) {
$check_option = 0 < $seconds ? true : false;
// Check if the notice is dismissible, and if so has been dismissed.
if ( $is_dismissible && $this->is_dismissed( $notice, $check_option ) ) {
// Nothing to show here, return!
return;
}
// Display inline notice.
?>
<div class="<?php echo $updated ? 'updated ' : ''; ?>envira-notice <?php echo sanitize_html_class( $type ); ?> <?php echo sanitize_html_class( ( $is_dismissible ? ' is-dismissible' : '' ) ); ?>" data-seconds="<?php echo esc_attr( $seconds ); ?>" data-notice="<?php echo esc_attr( $notice ); ?>">
<?php
// Title.
if ( ! empty( $title ) ) {
?>
<p class="envira-intro"><?php echo wp_kses_post( $title ); ?></p>
<?php
}
// Message.
if ( ! empty( $message ) ) {
?>
<p><?php echo wp_kses_post( $message ); ?></p>
<?php
}
// Button.
if ( ! empty( $button_text ) && ! empty( $button_url ) ) {
?>
<a href="<?php echo esc_url( $button_url ); ?>" target="_blank" rel="noopener" class="button button-primary"><?php echo esc_html( $button_text ); ?></a>
<?php
}
// Dismiss Button.
if ( $is_dismissible ) {
?>
<button type="button" class="notice-dismiss">
<span class="screen-reader-text">
<?php esc_html_e( 'Dismiss this notice', 'envira-gallery' ); ?>
</span>
</button>
<?php
}
?>
</div>
<?php
}
}