setup_constants(); self::$instance->includes(); self::$instance->endpoint = new burst_endpoint(); self::$instance->sessions = new burst_sessions(); self::$instance->goals = new burst_goals(); self::$instance->goals_tracker = new burst_goals_tracker(); self::$instance->frontend = new burst_frontend(); if ( burst_admin_logged_in() ) { self::$instance->goals = new burst_goals(); self::$instance->statistics = new burst_statistics(); self::$instance->goal_statistics = new burst_goal_statistics(); self::$instance->admin = new burst_admin(); self::$instance->mail_reports = new burst_mail_reports(); self::$instance->summary = new burst_summary(); self::$instance->review = new burst_review(); self::$instance->notices = new burst_notices(); self::$instance->db_upgrade = new burst_db_upgrade(); self::$instance->dashboard_widget = new burst_dashboard_widget(); } self::$instance->hooks(); } return self::$instance; } /** * Setup constants for the plugin */ private function setup_constants() { define( 'burst_free', true ); define( 'burst_url', plugin_dir_url( __FILE__ ) ); define( 'burst_dashboard_url', admin_url( 'index.php?page=burst' ) ); define( 'burst_path', plugin_dir_path( __FILE__ ) ); define( 'burst_plugin', plugin_basename( __FILE__ ) ); define( 'burst_plugin_name', 'Burst Statistics' ); $burst_plugin = explode( '/', burst_plugin ); array_pop( $burst_plugin ); $burst_plugin = implode( '/', $burst_plugin ); define( 'burst_plugin_folder', $burst_plugin ); $debug = ( defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ) ? '#'.time() : ''; define( 'burst_version', '1.7.6.1' . $debug ); define( 'burst_plugin_file', __FILE__ ); define( 'burst_main_menu_position', 100 ); define( 'burst_pro_url', 'https://burst-statistics.com/pricing/?src=burst-plugin' ); define( 'BURST_ITEM_ID', 889 ); define( 'burst_product_name', 'Burst Pro' ); } /** * Instantiate the class. * * @return BURST * @since 1.0.0 * */ public static function get_instance() { if ( ! isset( self::$instance ) && ! ( self::$instance instanceof BURST ) ) { self::$instance = new self(); } return self::$instance; } private function includes() { require_once( burst_path . 'class-endpoint.php' ); require_once( burst_path . 'functions.php' ); require_once( burst_path . 'integrations/integrations.php' ); require_once( burst_path . 'tracking/tracking.php' ); require_once( burst_path . 'class-frontend.php' ); require_once( burst_path . 'helpers/php-user-agent/UserAgentParser.php' ); require_once( burst_path . 'sessions/class-sessions.php' ); require_once( burst_path . 'goals/class-goals.php' ); require_once( burst_path . 'goals/class-goals-tracker.php' ); require_once( burst_path . 'cron.php' ); require_once( burst_path . 'class-frontend.php' ); if ( burst_admin_logged_in() ) { require_once( burst_path . 'upgrade.php' ); require_once( burst_path . 'goals/class-goals.php' ); require_once( burst_path . 'class-db-upgrade.php' ); require_once( burst_path . 'statistics/class-statistics.php' ); require_once( burst_path . 'statistics/class-goal-statistics.php' ); require_once( burst_path . 'class-admin.php' ); require_once burst_path . 'mailer/class-mail-reports.php'; require_once( burst_path . 'statistics/class-summary.php' ); require_once( burst_path . 'settings/settings.php' ); require_once( burst_path . 'class-review.php' ); require_once( burst_path . 'class-notices.php' ); require_once( burst_path . 'class-installer.php' ); require_once( burst_path . 'dashboard-widget/dashboard-widget.php' ); if ( isset( $_GET['install_pro'] ) ) { require_once( burst_path . 'upgrade/upgrade-to-pro.php' ); } } } private function hooks() { $plugin = plugin_basename( __FILE__ ); /** * Tell the consent API we're following the api */ add_filter( "wp_consent_api_registered_$plugin", function() { return true; } ); } } // End BURST class } // End if class_exists check if ( ! function_exists( 'BURST' ) ) { function BURST() { return BURST::instance(); } add_action( 'plugins_loaded', 'BURST', 8 ); } if ( ! function_exists( 'burst_on_activation' ) ) { /** * Set an activation time stamp * * @param $networkwide */ function burst_on_activation() { if (!function_exists('burst_add_view_capability')) { require_once( plugin_dir_path( __FILE__ ) . 'functions.php' ); } burst_add_view_capability(); burst_add_manage_capability(); update_option( 'burst_run_activation', true, false ); update_option('burst_set_defaults', true, false); } register_activation_hook( __FILE__, 'burst_on_activation' ); } if ( ! function_exists( 'burst_clear_scheduled_hooks' ) ) { register_deactivation_hook( __FILE__, 'burst_clear_scheduled_hooks' ); function burst_clear_scheduled_hooks() { wp_clear_scheduled_hook( 'burst_every_hour' ); wp_clear_scheduled_hook( 'burst_daily' ); wp_clear_scheduled_hook( 'burst_weekly' ); wp_clear_scheduled_hook( 'burst_every_5_minutes' ); } }