public static function get_instance()
 {
     if (null == self::$instance) {
         self::$instance = new self();
     }
     return self::$instance;
 }
 private function __construct()
 {
     $plugin = WP_Maintenance_Mode::get_instance();
     $this->plugin_slug = $plugin->get_plugin_slug();
     $this->plugin_settings = $plugin->get_plugin_settings();
     $this->plugin_default_settings = $plugin->default_settings();
     $this->plugin_basename = plugin_basename(WPMM_PATH . $this->plugin_slug . '.php');
     // Load admin style sheet and JavaScript.
     add_action('admin_enqueue_scripts', array($this, 'enqueue_admin_styles'));
     add_action('admin_enqueue_scripts', array($this, 'enqueue_admin_scripts'));
     // Add the options page and menu item.
     add_action('admin_menu', array($this, 'add_plugin_menu'));
     // Add an action link pointing to the options page
     if (is_multisite() && is_plugin_active_for_network($this->plugin_basename)) {
         // settings link will point to admin_url of the main blog, not to network_admin_url
         add_filter('network_admin_plugin_action_links_' . $this->plugin_basename, array($this, 'add_settings_link'));
     } else {
         add_filter('plugin_action_links_' . $this->plugin_basename, array($this, 'add_settings_link'));
     }
     // Add admin notices
     add_action('admin_notices', array($this, 'add_notices'));
     // Add ajax methods
     add_action('wp_ajax_wpmm_subscribers_export', array($this, 'subscribers_export'));
     add_action('wp_ajax_wpmm_subscribers_empty_list', array($this, 'subscribers_empty_list'));
     add_action('wp_ajax_wpmm_dismiss_notices', array($this, 'dismiss_notices'));
     add_action('wp_ajax_wpmm_reset_settings', array($this, 'reset_settings'));
     // Add text to footer
     add_filter('admin_footer_text', array($this, 'admin_footer_text'), 5);
 }