/**
  * Output the message
  *
  * @since 1.3
  *
  * @param string $message The text of the message.
  * @param bool $error Optional. Whether to show as error or update. Default is notice.
  * @param string $cap_check Optional. Minimum user capability to show notice to. Default is "activate_plugins"
  * @param string|bool $ignore_key Optional. The user meta key to use for storing if this message has been dismissed by current user or not. If false, it will be generated.
  *
  * @return string|void Admin notice if is_admin() and not dismissed.
  */
 public static function notice($message, $error = false, $cap_check = 'activate_plugins', $ignore_key = false)
 {
     if (is_admin() && (!defined('DOING_AJAX') || !DOING_AJAX)) {
         if (current_user_can($cap_check)) {
             $user_id = get_current_user_id();
             if (!is_string($ignore_key)) {
                 // wplistings_ignore_3911b2583433f696e5813a503bbb2e65
                 $ignore_key = 'wplistings_ignore_' . substr(md5($ignore_key), 0, 40);
             }
             self::$ignore_key = sanitize_key($ignore_key);
             $dissmised = get_user_meta($user_id, self::$ignore_key, true);
             if (!$dissmised) {
                 if ($error) {
                     $class = 'error';
                 } else {
                     $class = 'updated';
                 }
                 self::$nonce_field = wp_nonce_field(self::$nonce_action);
                 $out[] = sprintf('<div id="%1s" data-key="%2s" class="%3s notice is-dismissible"><p>', self::$ignore_key, self::$ignore_key, $class);
                 $out[] = $message;
                 $out[] = self::$nonce_field;
                 $out[] = '</p></div>';
                 add_action('admin_enqueue_scripts', array(__CLASS__, 'js_css'));
                 add_action('wp_ajax_wp_listings_admin_notice', array(__CLASS__, 'ajax_cb'));
                 return implode('', $out);
             }
         }
     }
 }
Example #2
0
 function wp_listings_admin_notice_cb()
 {
     $_wp_listings_admin = new WP_Listings_Admin_Notice();
     return $_wp_listings_admin->ajax_cb();
 }