HEX
Server: Microsoft-IIS/8.5
System: Windows NT YDAWBH120 6.3 build 9600 (Windows Server 2012 R2 Standard Edition) AMD64
User: tentjecom_web (0)
PHP: 7.4.14
Disabled: NONE
Upload Files
File: D:/HostingSpaces/ERijn/knijft.eu/wwwroot/wp-content/plugins/form-maker/fm_admin_class.php
<?php

class FM_Admin {
  public static $instance = null;
  protected $notices = null;

  public static function get_instance() {
    if (null == self::$instance) {
      self::$instance = new self;
    }

    return self::$instance;
  }

  private function __construct() {
    $this->notices = new FM_Notices();
    add_action('admin_init', array($this, 'admin_notice_ignore'));
    add_action('admin_notices', array($this, 'fm_admin_notices'));
  }

  function fm_admin_notices() {
    // Notices filter and run the notices function.

    $admin_notices = apply_filters('fm_admin_notices', array());
    $this->notices->admin_notice($admin_notices);

  }

  // Ignore function that gets ran at admin init to ensure any messages that were dismissed get marked
  public function admin_notice_ignore() {

    $slug = (isset($_GET['fm_admin_notice_ignore'])) ? $_GET['fm_admin_notice_ignore'] : '';
    // If user clicks to ignore the notice, run this action
    if (isset($_GET['fm_admin_notice_ignore']) && current_user_can('manage_options')) {

      $admin_notices_option = get_option('fm_admin_notice', array());
      $admin_notices_option[$_GET['fm_admin_notice_ignore']]['dismissed'] = 1;
      update_option('fm_admin_notice', $admin_notices_option);
      $query_str = remove_query_arg('fm_admin_notice_ignore');
      wp_redirect($query_str);
      exit;
    }
  }
}