/**
    * Initialize the plugin by setting localization, filters, and administration functions.
    */
   private function __construct()
   {
      if (is_admin() && !class_exists('SH_Crafty_Social_buttons_Admin')) {
         require_once(plugin_dir_path(__FILE__) . 'class-SH-Crafty-Social-Buttons-Admin.php');
         $this->admin_class = SH_Crafty_Social_Buttons_Admin::get_instance();
      }

      // Load plugin text domain
      add_action('init', array($this, 'load_plugin_textdomain'));

      // Add the options page and menu item.
      add_action('admin_menu', array($this, 'add_plugin_admin_menu'));

      // add hooks for showing messages and initialising settings
      add_action('admin_notices', array($this, 'show_admin_messages'));

      // Load admin style sheet and JavaScript.
      add_action('admin_enqueue_scripts', array($this, 'enqueue_admin_styles'), 10, 1);
      add_action('admin_enqueue_scripts', array($this, 'enqueue_admin_scripts'), 11, 1);

      // Load public-facing style sheet and JavaScript.
      add_action('wp_enqueue_scripts', array($this, 'enqueue_styles'));
      add_action('wp_enqueue_scripts', array($this, 'enqueue_scripts'));

      // Set up ajax callbacks for client-side loading of share counts
      add_action('wp_ajax_share_count', array($this, 'get_share_count'));
      add_action('wp_ajax_nopriv_share_count', array($this, 'get_share_count'));

   }
 /**
  * Return an instance of this class.
  */
 public static function get_instance()
 {
     // If the single instance hasn't been set, set it now.
     if (null == self::$instance) {
         self::$instance = new self();
     }
     return self::$instance;
 }