benecaster_bridge_supports_manual_membership
Gates whether the “Add subscriber manually” admin action is available for a given bridge. The ManualSubscriberController checks this filter before routing a manual-enrollment request — when it returns false, the endpoint responds with 501 bridge_unsupported and the admin UI button does not render for shows bound to that bridge.
The default value is true only for benecaster_builtin (the NativeBridge slug) and false for every other bridge slug. Bridge add-ons that implement BridgeInterface::create_manual_membership() should return true for their own slug here to unlock the feature on shows that use their bridge.
This filter is also consumed by the benecaster_bridge_supports_manual_membership() global helper (so callers do not need to know the default) and surfaced in the GET /bridge and POST /bridge/activate REST responses as supports_manual_membership.
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
$default |
bool |
— | Whether the bridge supports manual subscriber creation. True for benecaster_builtin; false for all other bridge slugs. |
$bridge_slug |
string |
— | Slug of the bridge being queried (e.g. 'benecaster_builtin', 'memberpress', 'woo_subscriptions') |
Returns:
bool
Examples
Enable manual membership for a custom bridge add-on
add_filter( 'benecaster_bridge_supports_manual_membership', function( bool $default, string $bridge_slug ): bool {
if ( 'acme_membership' === $bridge_slug ) {
return true;
}
return $default;
}, 10, 2 );
Notes
Add-on bridges that return true here must also implement BridgeInterface::create_manual_membership() directly on their bridge class and must NOT use ManualMembershipUnsupportedTrait. The filter gate and the method implementation must stay in sync — returning true here without a working implementation will cause a BadMethodCallException at enrollment time.