Skip to main content

benecaster_bridge_connected

Action Premium

Fires each time an admin saves a bridge selection — from both the setup wizard’s Subscription step and Settings → Subscription. This covers the initial connection, changing to a different bridge, and re-saving the same bridge. It fires on every save, not just on first connection.

This hook does not fire when the bridge is cleared with an empty slug. Common bridge slugs include 'memberpress', 'woocommerce-subscriptions', 'woocommerce-memberships', 'paid-memberships-pro', and 'restrict-content'.

Parameters

Name Type Default Description
$bridge_slug string Slug of the bridge just connected (e.g. 'memberpress', 'restrict-content')
$show_id int ID of the show

Examples

Store metadata for each bridge level

add_action( 'benecaster_bridge_connected', function (
    string $bridge_slug,
    int    $show_id
): void {
    // Guard against repeat runs on re-save
    if ( get_post_meta( $show_id, '_my_addon_bridge_initialised', true ) ) {
        return;
    }
    update_post_meta( $show_id, '_my_addon_bridge_initialised', true );
    my_addon_setup_for_show( $show_id, $bridge_slug );
}, 10, 2 );

Read all tiers from the newly connected bridge and record sync timestamps

add_action( 'benecaster_bridge_connected', function (
    string $bridge_slug,
    int    $show_id
): void {
    $levels = Benecaster\Plugin::instance()
        ->make( Benecaster\Bridge\BridgeManager::class )
        ->get_active_bridge( $show_id )
        ->get_all_tiers( $show_id );

    foreach ( $levels as $level ) {
        update_post_meta(
            $show_id,
            '_my_addon_level_' . sanitize_key( $level['id'] ) . '_synced',
            current_time( 'mysql' )
        );
    }
}, 10, 2 );

Notes

Because this hook fires on every save including re-saves and bridge changes, guard any initialization logic that should run only once with a post meta flag to avoid running it multiple times. During the setup wizard flow, benecaster_bridge_connected fires first (when the bridge is selected), then benecaster_setup_wizard_completed fires when the full wizard completes.

Need this built rather than just documented? See our services →