Skip to main content

benecaster_follower_signup_output

Filter Premium

Filters the rendered HTML output of the [benecaster_follower_signup] shortcode before it is returned to the page. The $state parameter identifies the current render state: 'form' for the initial page load or after a validation failure, 'success' after a successful signup, and 'error' after a server-side failure. Use to wrap the markup in a custom container, inject analytics data attributes, or replace the success state with fully branded HTML.

Note that the 'success' state also fires for returning followers (duplicate signups). Benecaster intentionally does not distinguish new from returning followers in the rendered output to prevent email enumeration.

Parameters

Name Type Default Description
$html string Rendered shortcode markup.
$atts array Resolved shortcode attributes. NOT `$show_id`: this position was documented as a show ID and has always carried the attributes array.
$result array Result data for the current render pass.

Returns: string

Examples

Add analytics data attribute to container

add_filter( 'benecaster_follower_signup_output', function( $html, $show_id, $atts, $state ) {
    $html = str_replace( '<div class="bc-follower-signup"', '<div class="bc-follower-signup" data-state="' . esc_attr( $state ) . '"', $html );
    return $html;
}, 10, 4 );

Wrap output in custom container

add_filter(
    'benecaster_follower_signup_output',
    function ( string $html, int $show_id, array $atts, string $state ): string {
        return '<div class="my-signup-wrapper" data-state="' . esc_attr( $state ) . '">' . $html . '</div>';
    },
    10, 4
);

Replace success state with branded HTML

add_filter(
    'benecaster_follower_signup_output',
    function ( string $html, int $show_id, array $atts, string $state ): string {
        if ( 'success' !== $state ) {
            return $html;
        }
        return '<div class="follower-welcome"><h2>' . esc_html__( 'Welcome!', 'my-theme' ) . '</h2><p>' . esc_html__( 'Check your inbox for your feed URL.', 'my-theme' ) . '</p></div>';
    },
    10, 4
);

Notes

The 'success' state fires for both new and returning followers. Benecaster does not surface duplicate signups to the visitor in order to prevent email enumeration — your callback cannot distinguish a first-time signup from a returning one using $state alone.

Affects

  • [benecaster_follower_signup](/shortcodes/benecaster-follower-signup/) shortcode