/**
  * Returns the instance.
  *
  * @since  1.0.0
  * @return object
  */
 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;
 }
 /**
  * Sets up our actions/filters.
  *
  * @since 1.0.0
  */
 public function __construct()
 {
     // Register shortcode on 'init'.
     add_action('init', array($this, 'register_shortcode'));
     // Register shortcode and add it to the dialog.
     add_filter('cherry_shortcodes/data/shortcodes', array($this, 'shortcodes'));
     add_filter('cherry_templater/data/shortcodes', array($this, 'shortcodes'));
     add_filter('cherry_templater_target_dirs', array($this, 'add_target_dir'), 11);
     add_filter('cherry_templater_macros_buttons', array($this, 'add_macros_buttons'), 11, 2);
     // Modify mailer shortcode to aloow it process team
     add_filter('cherry_shortcodes_add_mailer_macros', array($this, 'extend_mailer_macros'));
     add_filter('cherry-shortcode-swiper-mailer-postdata', array($this, 'add_mailer_data'), 10, 3);
     $this->data = Cherry_Mailer_Data::get_instance();
     // Create menu item
     add_action('admin_menu', array(&$this, 'admin_menu'));
     // Need for submit frontend form
     add_action('wp_ajax_mailersubscribe', array(&$this, 'subscriber_add'));
     add_action('wp_ajax_nopriv_mailersubscribe', array(&$this, 'subscriber_add'));
     // Need for save options
     add_action('wp_ajax_cherry_mailer_save_options', array(&$this, 'save_options'));
     add_action('wp_ajax_nopriv_cherry_mailer_save_options', array(&$this, 'save_options'));
     // Get options
     $this->get_options();
     // Need for generate shortcode view
     add_action('wp_ajax_cherry_mailer_generator_view', array(&$this, 'generator_view'));
     add_action('wp_ajax_nopriv_cherry_mailer_generator_view', array(&$this, 'generator_view'));
     // Style to filter for Cherry Framework
     add_filter('cherry_compiler_static_css', array($this, 'add_style_to_compiler'));
     // Language include
     add_action('plugins_loaded', array($this, 'include_languages'));
     // Plugin update
     add_action('plugins_loaded', array($this, 'plugin_update'));
 }