Installation
How to install Burst Statistics (free and pro), system requirements, and what happens during plugin initialisation.
System Requirements
| Requirement | Minimum |
|---|---|
| WordPress | 6.4 |
| PHP | 8.0 |
Installing Burst Statistics (Free)
- In your WordPress admin, go to Plugins → Add New.
- Search for Burst Statistics.
- Click Install Now, then Activate.
- 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)
- Download
burst-pro.zipfrom your account at burst-statistics.com. - In your WordPress admin, go to Plugins → Add New → Upload Plugin.
- Choose the zip file and click Install Now, then Activate.
- You are redirected to the onboarding wizard, where you will be prompted to enter your licence key.
Option B — Upgrade from free to pro
- Keep the free plugin active.
- Upload and activate Burst Pro as described above.
- The compatibility layer (
class-compatibility.php) prevents conflicts during the transition; the free plugin is deactivated automatically. - 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:
| Action | Option / transient written |
|---|---|
| Record activation timestamp | burst_activation_time |
| Schedule redirect to settings | burst_redirect_to_settings_page (transient, 5 min) |
| Flag onboarding to start | burst_start_onboarding |
| Flag defaults to be written | burst_set_defaults |
Pro plugin
The activation hook (burst_on_activation_premium) runs additional steps:
| Action | Option written |
|---|---|
| Flag premium upgrade routine | burst_run_premium_upgrade |
| Flag activation | burst_run_activation |
| Record pro activation timestamp | burst_activation_time_pro |
| Restart onboarding (first pro activation only) | deletes burst_skipped_onboarding, burst_completed_onboarding |
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:
| Priority | What runs |
|---|---|
| 1 | burst_loader() called — creates the Burst singleton |
| 9 | Burst::init() executes inside the singleton |
Inside Burst::init()
The following components are initialised in order:
- Constants — defines all
BURST_*constants (paths, URLs, version, etc.). - Auto-Installer — instantiated only when
?install_prois present in the request. - Integrations — third-party plugin integrations (e.g. WooCommerce, WPML).
- Frontend_Admin — loaded only when a user is logged in; handles admin-bar and front-end admin UI.
- Admin + Capability — loaded only for users who pass the
has_admin_access()check; registers the dashboard, settings, and role capabilities. - Pro — loaded only when the constant
BURST_PRO_FILEis defined (i.e. the pro plugin is active). - 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.
| Constant | Description |
|---|---|
BURST_FILE | Absolute path to the active plugin's main file |
BURST_PATH | Absolute path to the plugin directory (with trailing slash) |
BURST_URL | Full URL to the plugin directory, scheme-aware |
BURST_DASHBOARD_URL | URL to the Burst admin page (admin.php?page=burst) |
BURST_PLUGIN | Plugin basename (e.g. burst-pro/burst-pro.php) |
BURST_PLUGIN_NAME | Display name: Burst Pro or Burst Statistics |
BURST_VERSION | Current plugin version (3.3.0) |
BURST_PRO | true when the pro plugin is active (undefined otherwise) |
BURST_PRO_FILE | Absolute path to burst-pro.php (pro only; undefined otherwise) |
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:
- Action
burst_upgrade_beforefires. - Version-specific migration methods run sequentially (from the installed version up to
3.3.0). - Database tables are created or altered via
run_table_init_hook(). - Action
burst_upgrade_afterfires. burst-current-versionis updated toBURST_VERSION.
burst_upgrade_before
Fires immediately before any upgrade migration runs.
Parameters:
| Parameter | Type | Description |
|---|---|---|
$current_version | string | The 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:
| Parameter | Type | Description |
|---|---|---|
$new_version | string | The 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.
| Table | Purpose |
|---|---|
burst_statistics | Raw visitor page-view records |
burst_sessions | Session-level data |
burst_goals | Goal definitions |
burst_goal_statistics | Goal conversion records |
burst_browsers | Browser lookup table |
burst_browser_versions | Browser version lookup table |
burst_platforms | OS/platform lookup table |
burst_devices | Device-type lookup table |
burst_referrers | Referrer URL storage |
burst_known_uids | Unique visitor UID tracking |
burst_query_stats | Search 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:
| Option | Content |
|---|---|
burst_php_error_time | Unix timestamp of the last error |
burst_php_error_count | Cumulative error count |
burst_php_error_detected | Concatenated 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.