Skip to content

Release v3.0.0: extract built-in integrations to add-on, add register_providers global filter - #21

Merged
raftaar1191 merged 1 commit into
mainfrom
release/v3.0.0
Aug 3, 2026
Merged

raftaar1191 merged 1 commit into
mainfrom
release/v3.0.0

Conversation

@raftaar1191

Copy link
Copy Markdown
Contributor

Summary

  • Breaking: Removes the two shipped plugin-dependent providers — BuddyBossProfileTypeProvider (bb_profile_type, since v1.4.0) and MemberPressMembershipProvider (mepr_membership, since v1.5.0) — along with their v1.6.0 _enabled opt-in filters and tests/bootstrap.php stubs. Both now ship in the new AcrossAI User Access Pro add-on plugin (with new uap_* IDs), which also adds eight additional integrations (LearnDash, LifterLMS, PMPro, RCP, Woo Memberships, s2Member, Wishlist Member, Memberium).
  • Added: New global filter wpb_access_control_register_providers in AccessControlManager::load_providers(). Fires before the per-consumer filter with ( array $providers, string $table_slug ). Add-on plugins hook this once and their providers appear in every consumer of the library — no per-consumer bootstrap code required. Consumers retain final say via their existing per-instance filter.
  • Docs: README loses the removed provider tables/sections and gains a "Writing a third-party provider add-on" section. CHANGELOG has a v3.0.0 entry with removed classes, the new filter, the add-on lineup, and migration steps.

Test plan

  • Full PHPUnit suite green — 147 tests / 224 assertions (down from 295 as the 10 provider test suites are gone; 1 new test_load_providers_applies_global_filter_before_consumer_filter added)
  • Reviewer: sanity-check that the migration snippet in CHANGELOG.md (UPDATE ... SET access_control_key = 'uap_bb_profile_type' WHERE ... = 'bb_profile_type') matches the actual per-consumer table naming ({prefix}{slug}_access_control)
  • Reviewer: after merge, tag the merge commit v3.0.0 to trigger packagist

🤖 Generated with Claude Code

…er_providers global filter (v3.0.0)

BREAKING. Removes BuddyBossProfileTypeProvider (bb_profile_type, since v1.4.0)
and MemberPressMembershipProvider (mepr_membership, since v1.5.0) along with
their v1.6.0 opt-in filters and the tests/bootstrap.php stubs that supported
them. Both providers — plus eight new integrations (LearnDash, LifterLMS,
Paid Memberships Pro, Restrict Content Pro, WooCommerce Memberships,
s2Member, Wishlist Member, Memberium) — now ship in the AcrossAI User
Access Pro add-on plugin at github.com/acrossai-co/user-access-pro, using
fresh uap_* IDs.

Adds a new global filter in AccessControlManager::load_providers():

  apply_filters( 'wpb_access_control_register_providers', \$providers, \$table_slug )

It fires before the existing per-consumer filter with the running providers
array and the consumer's table slug. Add-on plugins hook this once and their
providers appear in every consumer of the library — no per-consumer bootstrap
code needed. Consumers retain final say via their own per-instance filter.

README documents the extension point in a new "Writing a third-party provider
add-on" section, and CHANGELOG covers the removals, additions, and migration
steps for any consumer that had enabled the old providers via the v1.6.0 gates.

Test suite drops from 295 to 147 (10 provider suites removed, 1 new global-
filter test added). All green.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@raftaar1191
raftaar1191 merged commit 5a54e9a into main Aug 3, 2026
5 checks passed
@raftaar1191
raftaar1191 deleted the release/v3.0.0 branch August 3, 2026 12:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant