Create New Item
Item Type
File
Folder
Item Name
Search file in folder and subfolders...
Are you sure want to rename?
File Manager
/
wp-content
/
plugins
/
orderable
/
inc
:
class-admin-notices.php
Advanced Search
Upload
New Item
Settings
Back
Back Up
Advanced Editor
Save
<?php /** * Admin Notices. * * @package Orderable/Classes */ defined( 'ABSPATH' ) || exit; /** * Admin Notices class. */ class Orderable_Admin_Notices { /** * Run. */ public static function run() { if ( ! is_admin() ) { return; } add_action( 'admin_notices', array( __CLASS__, 'display_notices' ) ); add_action( 'admin_init', array( __CLASS__, 'dismiss' ) ); } /** * Dismiss notices. */ public static function dismiss() { // Permissions check. if ( ! current_user_can( 'install_plugins' ) ) { return; } // phpcs:ignore WordPress.Security.NonceVerification $action = empty( $_GET['orderable_action'] ) ? '' : sanitize_text_field( wp_unslash( $_GET['orderable_action'] ) ); // Not our notices, bail. if ( 'dismiss_notice' !== $action ) { return; } // Get notice. $name = empty( $_GET['orderable_notice'] ) ? '' : sanitize_text_field( wp_unslash( $_GET['orderable_notice'] ) ); // phpcs:ignore WordPress.Security.NonceVerification if ( ! $name ) { return; } // Notice is dismissed. update_option( 'orderable_dismissed_notice_' . $name, 1 ); } /** * Check if notice is dismissed. * * @param string $name * * @return bool */ public static function is_dismissed( $name ) { return (bool) get_option( 'orderable_dismissed_notice_' . $name, false ); } /** * Display notices if they exist. */ public static function display_notices() { $notices = apply_filters( 'orderable_admin_notices', array() ); if ( empty( $notices ) ) { return; } $default_options = array( 'name' => null, 'title' => '', 'description' => '', 'dismissable' => true, ); foreach ( $notices as $notice ) { $notice = wp_parse_args( $notice, $default_options ); if ( is_null( $notice['name'] ) || self::is_dismissed( $notice['name'] ) ) { continue; } ?> <div class="notice notice--orderable" style="border-left-color: #7031F5;"> <p><strong><?php echo wp_kses_post( $notice['title'] ); ?></strong></p> <p><?php echo wp_kses_post( $notice['description'] ); ?></p> <?php if ( $notice['dismissable'] ) { ?> <p> <a href=" <?php echo esc_url( add_query_arg( array( 'orderable_action' => 'dismiss_notice', 'orderable_notice' => $notice['name'], ) ) ); ?> "><?php _e( 'Dismiss Notice', 'orderable' ); ?></a> </p> <?php } ?> </div> <?php } } }