/**
  * Initialize the plugin by setting localization and loading public scripts
  * and styles.
  *
  * @since 1.0.0
  */
 private function __construct()
 {
     // Dependencies
     erpPROPaths::requireOnce(erpPROPaths::$erpPRODBActions);
     erpPROPaths::requireOnce(erpPROPaths::$erpPROMainOpts);
     erpPROPaths::requireOnce(erpPROPaths::$erpPROWidOpts);
     erpPROPaths::requireOnce(erpPROPaths::$erpPROTracker);
     $this->wpSession = WP_Session::get_instance();
     $this->DB = erpPRODBActions::getInstance();
     $this->mainOpts = new erpPROMainOpts();
     $this->widOpts = new erpPROWidOpts();
     /**
      * Check if rating system is on in order to call tracker
      */
     $tracker = new erpPROTracker($this->DB, $this->wpSession, $this->mainOpts->getDisableTrackingSystem());
     add_action('init', array($tracker, 'tracker'));
     /**
      * Call content modifier
      */
     add_filter('the_content', array($this, 'contentFilter'), 1000);
     // Load plugin text domain
     add_action('init', array($this, 'load_plugin_textdomain'));
     // Activate plugin when new blog is added
     add_action('wpmu_new_blog', array($this, 'activate_new_site'));
     // 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'));
 }