Skip to main content

Installation

How to install Burst Statistics (free and pro), system requirements, and what happens during plugin initialisation.


System Requirements

RequirementMinimum
WordPress6.4
PHP8.0

Installing Burst Statistics (Free)

  1. In your WordPress admin, go to Plugins → Add New.
  2. Search for Burst Statistics.
  3. Click Install Now, then Activate.
  4. You are redirected to the Burst onboarding wizard automatically.

Installing Burst Pro

Pro

Burst Pro is the commercial version of Burst Statistics. It requires a valid licence key and either an existing free installation or a fresh install.

Option A — Fresh install (no free version present)

  1. Download burst-pro.zip from your account at burst-statistics.com.
  2. In your WordPress admin, go to Plugins → Add New → Upload Plugin.
  3. Choose the zip file and click Install Now, then Activate.
  4. You are redirected to the onboarding wizard, where you will be prompted to enter your licence key.

Option B — Upgrade from free to pro

  1. Keep the free plugin active.
  2. Upload and activate Burst Pro as described above.
  3. The compatibility layer (class-compatibility.php) prevents conflicts during the transition; the free plugin is deactivated automatically.
  4. The onboarding wizard restarts so you can configure your licence key.

Option C — Auto-installer (from the dashboard)

When the install_pro query parameter is present in an admin request, Burst triggers its built-in Auto_Installer class to download and activate the Pro plugin without leaving the dashboard.


What Happens on Activation

Free plugin

The activation hook runs the following steps the first time the plugin is activated:

ActionOption / transient written
Record activation timestampburst_activation_time
Schedule redirect to settingsburst_redirect_to_settings_page (transient, 5 min)
Flag onboarding to startburst_start_onboarding
Flag defaults to be writtenburst_set_defaults

Pro plugin

The activation hook (burst_on_activation_premium) runs additional steps:

ActionOption written
Flag premium upgrade routineburst_run_premium_upgrade
Flag activationburst_run_activation
Record pro activation timestampburst_activation_time_pro
Restart onboarding (first pro activation only)deletes burst_skipped_onboarding, burst_completed_onboarding
caution

If the constant BURST_FORCE_ONBOARDING is defined (e.g. in wp-config.php), the onboarding is forced to restart on every pro activation, and the options burst_skipped_onboarding, burst_completed_onboarding, and burst_onboarding_free_completed are deleted.


What Happens on Deactivation

When either plugin is deactivated, all scheduled cron events are cleared:

Cron hook cleared
burst_every_ten_minutes
burst_every_hour
burst_daily
burst_weekly

No data or options are deleted on deactivation. Use Settings → Reset inside the dashboard if you want to remove stored data.


Plugin Initialisation Sequence

Both the free and pro plugins hook into plugins_loaded. The priority order is:

PriorityWhat runs
1burst_loader() called — creates the Burst singleton
9Burst::init() executes inside the singleton

Inside Burst::init()

The following components are initialised in order:

  1. Constants — defines all BURST_* constants (paths, URLs, version, etc.).
  2. Auto-Installer — instantiated only when ?install_pro is present in the request.
  3. Integrations — third-party plugin integrations (e.g. WooCommerce, WPML).
  4. Frontend_Admin — loaded only when a user is logged in; handles admin-bar and front-end admin UI.
  5. Admin + Capability — loaded only for users who pass the has_admin_access() check; registers the dashboard, settings, and role capabilities.
  6. Pro — loaded only when the constant BURST_PRO_FILE is defined (i.e. the pro plugin is active).
  7. Frontend — always loaded; handles visitor tracking on the public-facing site.

Constants Defined at Runtime

The following PHP constants are defined during every request after plugins_loaded fires.

ConstantDescription
BURST_FILEAbsolute path to the active plugin's main file
BURST_PATHAbsolute path to the plugin directory (with trailing slash)
BURST_URLFull URL to the plugin directory, scheme-aware
BURST_DASHBOARD_URLURL to the Burst admin page (admin.php?page=burst)
BURST_PLUGINPlugin basename (e.g. burst-pro/burst-pro.php)
BURST_PLUGIN_NAMEDisplay name: Burst Pro or Burst Statistics
BURST_VERSIONCurrent plugin version (3.3.0)
BURST_PROtrue when the pro plugin is active (undefined otherwise)
BURST_PRO_FILEAbsolute path to burst-pro.php (pro only; undefined otherwise)
caution

The constants burst_version and burst_pro (lowercase) are deprecated aliases kept for backward compatibility. Do not use them in new code.


Upgrade Routine

On every request, the Upgrade class compares the stored burst-current-version option with BURST_VERSION. When they differ, the upgrade routine fires:

  1. Action burst_upgrade_before fires.
  2. Version-specific migration methods run sequentially (from the installed version up to 3.3.0).
  3. Database tables are created or altered via run_table_init_hook().
  4. Action burst_upgrade_after fires.
  5. burst-current-version is updated to BURST_VERSION.

burst_upgrade_before

Fires immediately before any upgrade migration runs.

Parameters:

ParameterTypeDescription
$current_versionstringThe version stored in the database before the upgrade

Example:

add_action( 'burst_upgrade_before', function( $current_version ) {
// e.g. back up custom data before a migration
} );

burst_upgrade_after

Fires immediately after all upgrade migrations have completed and the version option has been updated.

Parameters:

ParameterTypeDescription
$new_versionstringThe version the plugin has just upgraded to

Example:

add_action( 'burst_upgrade_after', function( $new_version ) {
// e.g. flush a cache after upgrade
} );

Database Tables

Burst creates and manages the following custom database tables on activation and upgrade. All tables use the site's configured $wpdb->prefix.

TablePurpose
burst_statisticsRaw visitor page-view records
burst_sessionsSession-level data
burst_goalsGoal definitions
burst_goal_statisticsGoal conversion records
burst_browsersBrowser lookup table
burst_browser_versionsBrowser version lookup table
burst_platformsOS/platform lookup table
burst_devicesDevice-type lookup table
burst_referrersReferrer URL storage
burst_known_uidsUnique visitor UID tracking
burst_query_statsSearch query statistics

Error Handling During Load

If a fatal error occurs while the plugin bootstraps (e.g. a missing dependency or incompatible PHP version), Burst catches the Throwable, logs it via error_log, and records the following options:

OptionContent
burst_php_error_timeUnix timestamp of the last error
burst_php_error_countCumulative error count
burst_php_error_detectedConcatenated error messages (newline-separated)

An admin notice is displayed in the WordPress dashboard until the error is resolved:

Urgent action required
Burst can not load due to the following error: …

Multisite

Burst Statistics is a per-site plugin. On WordPress Multisite networks it should be activated at the individual site level, not network-activated, unless you have confirmed compatibility with your network configuration.