From 69c17f9c1942fd0d6a5ea941636e87723b8a6fe2 Mon Sep 17 00:00:00 2001 From: Zach van Rijn Date: Wed, 21 Jul 2021 16:19:29 -0500 Subject: dos2unix on all .php files, begin paring down admin page and site branding. --- inc/lib/notices/class-astra-notices.php | 730 ++++++++++++++++---------------- 1 file changed, 365 insertions(+), 365 deletions(-) (limited to 'inc/lib/notices') diff --git a/inc/lib/notices/class-astra-notices.php b/inc/lib/notices/class-astra-notices.php index 3b5743d..b5203f8 100644 --- a/inc/lib/notices/class-astra-notices.php +++ b/inc/lib/notices/class-astra-notices.php @@ -1,365 +1,365 @@ - Create custom close notice link in the notice markup. E.g. - * `` - * It close the notice for 30 days. - * - * @package Astra Sites - * @since 1.4.0 - */ - -if ( ! defined( 'ABSPATH' ) ) { - exit; // Exit if accessed directly. -} - -if ( ! class_exists( 'Astra_Notices' ) ) : - - /** - * Astra_Notices - * - * @since 1.4.0 - */ - class Astra_Notices { - - /** - * Notices - * - * @access private - * @var array Notices. - * @since 1.4.0 - */ - private static $version = '1.1.5'; - - /** - * Notices - * - * @access private - * @var array Notices. - * @since 1.4.0 - */ - private static $notices = array(); - - /** - * Instance - * - * @access private - * @var object Class object. - * @since 1.4.0 - */ - private static $instance; - - /** - * Initiator - * - * @since 1.4.0 - * @return object initialized object of class. - */ - public static function get_instance() { - if ( ! isset( self::$instance ) ) { - self::$instance = new self(); - } - return self::$instance; - } - - /** - * Constructor - * - * @since 1.4.0 - */ - public function __construct() { - add_action( 'admin_notices', array( $this, 'show_notices' ), 30 ); - add_action( 'admin_enqueue_scripts', array( $this, 'enqueue_scripts' ) ); - add_action( 'wp_ajax_astra-notice-dismiss', array( $this, 'dismiss_notice' ) ); - add_filter( 'wp_kses_allowed_html', array( $this, 'add_data_attributes' ), 10, 2 ); - } - - /** - * Filters and Returns a list of allowed tags and attributes for a given context. - * - * @param Array $allowedposttags Array of allowed tags. - * @param String $context Context type (explicit). - * @since 1.4.0 - * @return Array - */ - public function add_data_attributes( $allowedposttags, $context ) { - $allowedposttags['a']['data-repeat-notice-after'] = true; - - return $allowedposttags; - } - - /** - * Add Notice. - * - * @since 1.4.0 - * @param array $args Notice arguments. - * @return void - */ - public static function add_notice( $args = array() ) { - self::$notices[] = $args; - } - - /** - * Dismiss Notice. - * - * @since 1.4.0 - * @return void - */ - public function dismiss_notice() { - - if ( ! apply_filters( 'astra_notices_user_cap_check', current_user_can( 'manage_options' ) ) ) { - return; - } - - $notice_id = ( isset( $_POST['notice_id'] ) ) ? sanitize_key( $_POST['notice_id'] ) : ''; - $repeat_notice_after = ( isset( $_POST['repeat_notice_after'] ) ) ? absint( $_POST['repeat_notice_after'] ) : ''; - $nonce = ( isset( $_POST['nonce'] ) ) ? sanitize_key( $_POST['nonce'] ) : ''; - - if ( false === wp_verify_nonce( $nonce, 'astra-notices' ) ) { - wp_send_json_error( esc_html_e( 'WordPress Nonce not validated.', 'astra' ) ); - } - - // Valid inputs? - if ( ! empty( $notice_id ) ) { - - if ( ! empty( $repeat_notice_after ) ) { - set_transient( $notice_id, true, $repeat_notice_after ); - } else { - update_user_meta( get_current_user_id(), $notice_id, 'notice-dismissed' ); - } - - wp_send_json_success(); - } - - wp_send_json_error(); - } - - /** - * Enqueue Scripts. - * - * @since 1.4.0 - * @return void - */ - public function enqueue_scripts() { - wp_register_script( 'astra-notices', self::_get_uri() . 'notices.js', array( 'jquery' ), self::$version, true ); - wp_localize_script( - 'astra-notices', - 'astraNotices', - array( - '_notice_nonce' => wp_create_nonce( 'astra-notices' ), - ) - ); - } - - /** - * Rating priority sort - * - * @since 1.5.2 - * @param array $array1 array one. - * @param array $array2 array two. - * @return array - */ - public function sort_notices( $array1, $array2 ) { - if ( ! isset( $array1['priority'] ) ) { - $array1['priority'] = 10; - } - if ( ! isset( $array2['priority'] ) ) { - $array2['priority'] = 10; - } - - return $array1['priority'] - $array2['priority']; - } - - /** - * Notice Types - * - * @since 1.4.0 - * @return void - */ - public function show_notices() { - - $defaults = array( - 'id' => '', // Optional, Notice ID. If empty it set `astra-notices-id-<$array-index>`. - 'type' => 'info', // Optional, Notice type. Default `info`. Expected [info, warning, notice, error]. - 'message' => '', // Optional, Message. - 'show_if' => true, // Optional, Show notice on custom condition. E.g. 'show_if' => if( is_admin() ) ? true, false, . - 'repeat-notice-after' => '', // Optional, Dismiss-able notice time. It'll auto show after given time. - 'display-notice-after' => false, // Optional, Dismiss-able notice time. It'll auto show after given time. - 'class' => '', // Optional, Additional notice wrapper class. - 'priority' => 10, // Priority of the notice. - 'display-with-other-notices' => true, // Should the notice be displayed if other notices are being displayed from Astra_Notices. - 'is_dismissible' => true, - ); - - // Count for the notices that are rendered. - $notices_displayed = 0; - - // sort the array with priority. - usort( self::$notices, array( $this, 'sort_notices' ) ); - - foreach ( self::$notices as $key => $notice ) { - - $notice = wp_parse_args( $notice, $defaults ); - - $notice['id'] = self::get_notice_id( $notice, $key ); - - $notice['classes'] = self::get_wrap_classes( $notice ); - - // Notices visible after transient expire. - if ( isset( $notice['show_if'] ) && true === $notice['show_if'] ) { - - // don't display the notice if it is not supposed to be displayed with other notices. - if ( 0 !== $notices_displayed && false === $notice['display-with-other-notices'] ) { - continue; - } - - if ( self::is_expired( $notice ) ) { - - self::markup( $notice ); - ++$notices_displayed; - } - } - } - - } - - /** - * Markup Notice. - * - * @since 1.4.0 - * @param array $notice Notice markup. - * @return void - */ - public static function markup( $notice = array() ) { - - wp_enqueue_script( 'astra-notices' ); - - do_action( 'astra_notice_before_markup' ); - - do_action( "astra_notice_before_markup_{$notice['id']}" ); - - ?> -
-
- - -
-
- Create custom close notice link in the notice markup. E.g. + * `
` + * It close the notice for 30 days. + * + * @package Astra Sites + * @since 1.4.0 + */ + +if ( ! defined( 'ABSPATH' ) ) { + exit; // Exit if accessed directly. +} + +if ( ! class_exists( 'Astra_Notices' ) ) : + + /** + * Astra_Notices + * + * @since 1.4.0 + */ + class Astra_Notices { + + /** + * Notices + * + * @access private + * @var array Notices. + * @since 1.4.0 + */ + private static $version = '1.1.5'; + + /** + * Notices + * + * @access private + * @var array Notices. + * @since 1.4.0 + */ + private static $notices = array(); + + /** + * Instance + * + * @access private + * @var object Class object. + * @since 1.4.0 + */ + private static $instance; + + /** + * Initiator + * + * @since 1.4.0 + * @return object initialized object of class. + */ + public static function get_instance() { + if ( ! isset( self::$instance ) ) { + self::$instance = new self(); + } + return self::$instance; + } + + /** + * Constructor + * + * @since 1.4.0 + */ + public function __construct() { + add_action( 'admin_notices', array( $this, 'show_notices' ), 30 ); + add_action( 'admin_enqueue_scripts', array( $this, 'enqueue_scripts' ) ); + add_action( 'wp_ajax_astra-notice-dismiss', array( $this, 'dismiss_notice' ) ); + add_filter( 'wp_kses_allowed_html', array( $this, 'add_data_attributes' ), 10, 2 ); + } + + /** + * Filters and Returns a list of allowed tags and attributes for a given context. + * + * @param Array $allowedposttags Array of allowed tags. + * @param String $context Context type (explicit). + * @since 1.4.0 + * @return Array + */ + public function add_data_attributes( $allowedposttags, $context ) { + $allowedposttags['a']['data-repeat-notice-after'] = true; + + return $allowedposttags; + } + + /** + * Add Notice. + * + * @since 1.4.0 + * @param array $args Notice arguments. + * @return void + */ + public static function add_notice( $args = array() ) { + self::$notices[] = $args; + } + + /** + * Dismiss Notice. + * + * @since 1.4.0 + * @return void + */ + public function dismiss_notice() { + + if ( ! apply_filters( 'astra_notices_user_cap_check', current_user_can( 'manage_options' ) ) ) { + return; + } + + $notice_id = ( isset( $_POST['notice_id'] ) ) ? sanitize_key( $_POST['notice_id'] ) : ''; + $repeat_notice_after = ( isset( $_POST['repeat_notice_after'] ) ) ? absint( $_POST['repeat_notice_after'] ) : ''; + $nonce = ( isset( $_POST['nonce'] ) ) ? sanitize_key( $_POST['nonce'] ) : ''; + + if ( false === wp_verify_nonce( $nonce, 'astra-notices' ) ) { + wp_send_json_error( esc_html_e( 'WordPress Nonce not validated.', 'astra' ) ); + } + + // Valid inputs? + if ( ! empty( $notice_id ) ) { + + if ( ! empty( $repeat_notice_after ) ) { + set_transient( $notice_id, true, $repeat_notice_after ); + } else { + update_user_meta( get_current_user_id(), $notice_id, 'notice-dismissed' ); + } + + wp_send_json_success(); + } + + wp_send_json_error(); + } + + /** + * Enqueue Scripts. + * + * @since 1.4.0 + * @return void + */ + public function enqueue_scripts() { + wp_register_script( 'astra-notices', self::_get_uri() . 'notices.js', array( 'jquery' ), self::$version, true ); + wp_localize_script( + 'astra-notices', + 'astraNotices', + array( + '_notice_nonce' => wp_create_nonce( 'astra-notices' ), + ) + ); + } + + /** + * Rating priority sort + * + * @since 1.5.2 + * @param array $array1 array one. + * @param array $array2 array two. + * @return array + */ + public function sort_notices( $array1, $array2 ) { + if ( ! isset( $array1['priority'] ) ) { + $array1['priority'] = 10; + } + if ( ! isset( $array2['priority'] ) ) { + $array2['priority'] = 10; + } + + return $array1['priority'] - $array2['priority']; + } + + /** + * Notice Types + * + * @since 1.4.0 + * @return void + */ + public function show_notices() { + + $defaults = array( + 'id' => '', // Optional, Notice ID. If empty it set `astra-notices-id-<$array-index>`. + 'type' => 'info', // Optional, Notice type. Default `info`. Expected [info, warning, notice, error]. + 'message' => '', // Optional, Message. + 'show_if' => true, // Optional, Show notice on custom condition. E.g. 'show_if' => if( is_admin() ) ? true, false, . + 'repeat-notice-after' => '', // Optional, Dismiss-able notice time. It'll auto show after given time. + 'display-notice-after' => false, // Optional, Dismiss-able notice time. It'll auto show after given time. + 'class' => '', // Optional, Additional notice wrapper class. + 'priority' => 10, // Priority of the notice. + 'display-with-other-notices' => true, // Should the notice be displayed if other notices are being displayed from Astra_Notices. + 'is_dismissible' => true, + ); + + // Count for the notices that are rendered. + $notices_displayed = 0; + + // sort the array with priority. + usort( self::$notices, array( $this, 'sort_notices' ) ); + + foreach ( self::$notices as $key => $notice ) { + + $notice = wp_parse_args( $notice, $defaults ); + + $notice['id'] = self::get_notice_id( $notice, $key ); + + $notice['classes'] = self::get_wrap_classes( $notice ); + + // Notices visible after transient expire. + if ( isset( $notice['show_if'] ) && true === $notice['show_if'] ) { + + // don't display the notice if it is not supposed to be displayed with other notices. + if ( 0 !== $notices_displayed && false === $notice['display-with-other-notices'] ) { + continue; + } + + if ( self::is_expired( $notice ) ) { + + self::markup( $notice ); + ++$notices_displayed; + } + } + } + + } + + /** + * Markup Notice. + * + * @since 1.4.0 + * @param array $notice Notice markup. + * @return void + */ + public static function markup( $notice = array() ) { + + wp_enqueue_script( 'astra-notices' ); + + do_action( 'astra_notice_before_markup' ); + + do_action( "astra_notice_before_markup_{$notice['id']}" ); + + ?> +
+
+ + +
+
+