Main Header

License activation

Updated on July 30, 2026

SignalPress Pro licenses are activated from WordPress against the SignalPress Hub. After the first activation, the site stores signed credentials and validates in the background — the license key is not sent on every request.

Overview: Licensing, tiers, and permissions. Install steps: Setup & Activating SignalPress.

Requirements

  • SignalPress (free) active
  • SignalPress Pro installed and active
  • A valid license key (format SP-XXXX-...)
  • Manage license permission or administrator access

Activate a license

  1. Open SignalPress → Settings → Settings.
  2. Scroll to SignalPress Pro license.
  3. Enter your license key in the License key field.
  4. Click Activate.

On success, the table updates with Status, Tier, Licensed domain, Domain usage, Expires, and Last successful check.

What happens during activation

SignalPress Pro calls the hub /wp-json/signalpress-hub/v1/license/activate endpoint with:

  • License key (used once at activation)
  • Normalized site domain and stable site fingerprint
  • Plugin, PHP, and WordPress versions

The hub returns:

  • activation_id and activation_token — stored locally; the token is never shown again after activation
  • Entitlement payload — tier, status, features, expiry, domain limits, beta flags

Local state is saved in the signalpress_license option. Successful activation fires signalpress/license_activated and refreshes remote config.

Refresh and background validation

ActionWhen to use
RefreshAfter a plan upgrade, domain limit change, or beta enrollment on the hub
Automatic validateHourly WP-Cron plus admin visits (at most once per hour when credentials exist)

Refresh calls the hub validate endpoint with signed activation_id / activation_token — not the license key.

If validation fails (expired subscription, revoked activation), Pro revokes local credentials while keeping the masked key for reactivation. Status becomes inactive and tier-gated features lock until you Activate or Refresh successfully.

Hooks:

  • signalpress/license_refreshed — after successful validate or activation
  • signalpress/license_revoked — when credentials are cleared after a failed check

Deactivate this site

Deactivate this site calls the hub deactivate endpoint, clears local activation credentials, and fires signalpress/license_deactivated.

Use this when:

  • Moving the license to another domain
  • Removing SignalPress from a staging clone
  • Freeing an activation slot in Domain usage

Saved integration settings, routing rules, and credentials remain on the site but Pro features lock until a license is activated again — Locked features and upgrade paths.

License status values

StatusEffect on signalpress_has_license_level()
activeTier features enabled
graceTier features enabled during a brief post-expiry window
inactiveTreated as Tier 0 for feature gates

Read status in code with signalpress_license_status(). Expiry timestamp: signalpress_license_expires_at() (0 or empty display means unknown/lifetime).

License table fields

FieldMeaning
Statusactive, grace, or inactive
Tier0, 1, or 2
License keyMasked display of stored key
Licensed domainDomain bound to this activation
Domain usageActivations used vs limit (Unlimited when no cap)
ExpiresRenewal date or Lifetime
Last successful checkLast hub validate success
Update accessWhether Pro plugin updates are available
Beta program / Beta versionShown when enrolled — in-admin surveys may appear

Beta program

When the entitlement includes beta enrollment:

  • signalpress_is_beta_participant() returns true
  • signalpress_beta_version() returns the cohort label
  • PostHog-powered in-admin surveys may load for beta participants after eligibility rules pass

Beta settings come from the hub entitlement; they are not toggled in wp-admin.

Troubleshooting

SymptomCheck
Activate fails with generic errorKey typo, inactive subscription, or domain limit reached
Tier shows 0 after activationRefresh license; confirm hub subscription is active
Features locked but status activeConfirm signalpress_operation_mode() is not pro_suspended or disabled
Staging site uses production keyDeactivate on one site before activating another, or increase domain limit

For delivery issues unrelated to licensing, see Connection Tests and Delivery Log.