stellarwp/harbor
A library that integrates a WordPress product with the Liquid Web licensing system.
v1.6.0
126K downloads/mo
#3576 most downloaded on Packagist
stellarwp/harbor
What this package is like to depend on
Last release 27 days ago
27 Jul 2026
Ships fairly regularly
a new release about every 3 weeks
Some releases are documented
notes for 10 of 18 stable releases
Nothing withdrawn
no release was ever pulled
4 months old
18 releases · first in 2026
18 releases in the last 12 months
see the full history below
Release timeline
18 releases · Apr 2026 to Jul 2026Releases
latest 18-
v1.6.027 Jul 2026Release notes
Open source →What's Changed
- Split product cards into Installed Features and Available Features by @d4mation in #179
- Add Activate link beside the Unactivated badge in the product header by @d4mation in #178
- Release Prep v1.6.0 by @github-actions[bot] in #185
- release/1.6.0 by @d4mation in #180
Full Changelog: v1.5.0...v1.6.0
Release notes
Open source →- Tweak - Added an Activate control beside the Unactivated badge in the product header, with a tier picker when a license covers multiple unactivated tiers.
- Tweak - Split the Feature Manager product list into Installed Features and Available Features sections.
-
v1.5.025 Jun 2026Release notes
Open source →What's Changed
- Guard register_routes against an empty REST namespace by @d4mation in #169
- Fix valid license blocked after invalid attempt | CONS-326 by @d4mation in #168
- Mask the unified license key in its locked display by @jonwaldstein in #170
- Feature: add disable debug log constant by @jonwaldstein in #172
- ci: track releases in Linear (scheduled pipeline) by @jonwaldstein in #173
- Fix Support and Documentation links in the Error Modal by @pramodjodhani in #171
- fix: validate license against the actual site domain on preview/staging hosts (CONS-450) by @jonwaldstein in #174
- Release Prep v1.5.0 by @github-actions[bot] in #176
- Fix Linear release completion: stamp version before completing by @jonwaldstein in #177
New Contributors
- @pramodjodhani made their first contribution in #171
Full Changelog: v1.4.0...v1.5.0
Release notes
Open source →- Tweak - Update the unified license key input UI to mask its value when in locked state.
- Feature - Added const LW_HARBOR_DISABLE_DEBUG_LOG to disable harbor specific logs
- Fix - Fixed license activation being blocked for ~60s after submitting an invalid key. The validate-and-store throttle is now per-license-key with a separate rolling-window rate limit for abuse protection, so a valid key submitted right after an invalid one no longer replays the previous error.
- Fix - Fixed license validation using the wrong domain on staging/preview sites. Site\Data::get_domain() now derives the host from home_url() instead of reading the siteurl option directly, so host-environment plugins that rewrite the site address (e.g. Hostinger's preview-domain mu-plugin) are honored and the domain Harbor validates against matches the one used during activation. WP-CLI and cron are unaffected, as home_url() returns the canonical domain when no web request is present.
- Fix - Corrected support and documentation links in the Error Modal
-
v1.4.021 May 2026Release notes
Open source →What's Changed
- CONS-341: Fix/drop type hint from wp callback by @dpanta94 in #164
- Update docs to reflect frontend changes by @pauloiankoski in #162
- Add a global function to refresh the catalog by @estevao90 in #163
- Fix release prep CI by @estevao90 in #165
- Fix release prep by @estevao90 in #167
- Release Prep v1.4.0 by @github-actions[bot] in #166
Full Changelog: v1.3.0...v1.4.0
Release notes
Open source →- Fix - Type-hint in WP Core's callback was too strict and could cause fatal.
- Feature - Added the
lw_harbor_refresh_catalog()global function to force a synchronous re-fetch of the product catalog from the Commerce Portal API.
-
v1.3.019 May 2026Release notes
Open source →What's Changed
- Format code by @shvlv in #151
- docs: document v1.2.0 changes by @d4mation in #158
- feat: welcome screen for sites without an active license [SMTNC-1182] by @pauloiankoski in #160
- feat: pass legacy license keys to Herald for updates and downloads by @d4mation in #159
- Release prep v1.3.0 by @d4mation in #161
Full Changelog: v1.2.0...v1.3.0
Release notes
Open source →- Feature - Registered Legacy Licenses can now be utilized for updates if
use_for_updatesistrue. - Tweak - The Software License Manager page now shows a splash screen until a Unified License Key is entered.
-
v1.2.014 May 2026Release notes
Open source →What's Changed
- Change project title and add description by @nikolaystrikhar in #147
- Add plugins section to README by @nikolaystrikhar in #148
- Feat/add premium plugins check by @dpanta94 in #150
- Revert Opt-in code by @d4mation in #154
- refactor: drop Lifecycle utility and hardcode wp_loaded by @d4mation in #155
- Simplify
_lw_harbor_global_function_registry()conditional by @d4mation in #156 - Fix/doing it wrong issues by @dpanta94 in #153
- Don't register alternate submenu when no premium plugins are active by @d4mation in #157
Full Changelog: v1.1.0...v1.2.0
Release notes
Open source →- Feature - The features page no longer shows unless a Premium Addon has been registered.
- Tweak - Added the
lw_harbor/loadedaction to indicate when Harbor is loaded. - Tweak - Added the
lw_harbor/premium_plugin_existsfilter to declare whether a premium plugin exists on a site. - Tweak - Removed opt-in as it will not be necessary now that external communications are gated behind a Premium Addon enabling Harbor.
- Tweak - The
lw-harbor/hide_menu_itemnow also applies to the submenu item created bylw_harbor_register_submenu().
-
v1.1.012 May 2026Release notes
Open source →What's Changed
- Move Liquid Web menu under Settings by @d4mation in #140
- Fix: Remove Unlock Features text by @d4mation in #141
- Feature: External Data Opt-in by @d4mation in #143
- feat: create null clients by @dpanta94 in #142
- Combine frontend opt-in flow with backend consent storage by @d4mation in #144
- tests: fix debug testing by @dpanta94 in #145
- Fix changelog and version by @d4mation in #146
New Contributors
Full Changelog: v1.0.2...v1.1.0
Release notes
Open source →- Feature - External connections are now gated behind a per-site opt-in flow.
- Fix - Moved the Licensing Page to a submenu item under Settings.
- Tweak - Added the
lw-harbor/hide_menu_itemto hide the Licensing Page submenu item while leaving the submenu page registered.
-
v1.0.201 May 2026Release notes
Open source →What's Changed
- tests: scaffold e2e testing with wp-env and playwright by @jonwaldstein in #136
- Change buttons to links by @estevao90 in #138
- Use upgrade_url from Catalog by @estevao90 in #137
- Release Prep v1.0.2 by @github-actions[bot] in #139
Full Changelog: v1.0.1...v1.0.2
-
v1.0.129 Apr 2026Release notes
Open source →What's Changed
- Show Unactivated badge on locked tiers for unactivated licenses by @pauloiankoski in #123
- chore: add bats shell testing by @jonwaldstein in #126
- Add release prep scripts by @estevao90 in #125
- Add Release Prep workflow by @estevao90 in #127
- Release Prep v1.0.1 by @github-actions[bot] in #132
- Show Harbor version in the admin page by @pauloiankoski in #133
- Improve release docs and fix CI by @estevao90 in #129
- Release Prep v1.0.1 by @github-actions[bot] in #134
- Release v1.0.1 by @estevao90 in #124
- Fix changelog by @estevao90 in #135
New Contributors
- @github-actions[bot] made their first contribution in #132
Full Changelog: v1.0.0...v1.0.1
Release notes
Open source →- Feature - Show Harbor version on admin page footer.
- Fix - Upgrade buttons now route existing subscribers to the portal's change-plan flow for the target tier instead of the catalog
purchase_url, which was adding a duplicate plan to the basket. Unlicensed visitors still see thepurchase_urlfor a fresh purchase.
-
v1.0.028 Apr 2026Release notes
Open source →What's Changed
- Grouped product cards with expandable tier rows by @pauloiankoski in #116
- Revert upsell links to use direct purchase URLs by @pauloiankoski in #117
- Suppress legacy license banner when products are unified-licensed | Issue #176 by @estevao90 in #118
- Update the bun.lock and fix the bun version by @estevao90 in #119
- Remove claude files and update services URLs by @estevao90 in #120
- Fix refresh redirect issuing headers after output has started by @pauloiankoski in #121
- Update production services URLs by @estevao90 in #122
Full Changelog: v0.1.8...v1.0.0
-
v0.1.824 Apr 2026Release notes
Open source →What's Changed
- Tier activation footer on unactivated product cards by @pauloiankoski in #109
- fix: skip free tier when building upsell purchase URLs by @pauloiankoski in #112
- Add Jest test runner via wp-scripts by @pauloiankoski in #110
- fix: filter cancelled products out of store on receipt by @pauloiankoski in #111
- Use an upgrade friendly portal CTA URL by @dave-green-uk in #113
- fix: use change-plan URL for upsells when user has an existing subscription by @pauloiankoski in #114
- Fix: encode activationUrl redirect_url with RFC3986 by @pauloiankoski in #115
New Contributors
- @dave-green-uk made their first contribution in #113
Full Changelog: v0.1.7...v0.1.8
-
v0.1.723 Apr 2026Nothing published for this version
-
v0.1.622 Apr 2026Nothing published for this version
-
v0.1.521 Apr 2026Nothing published for this version
-
v0.1.420 Apr 2026Nothing published for this version
-
v0.1.320 Apr 2026Nothing published for this version
-
v0.1.217 Apr 2026Nothing published for this version
-
v0.1.116 Apr 2026Nothing published for this version
-
v0.1.016 Apr 2026Nothing published for this version