Skip to main content

benecaster_email_merge_tags

Filter Free Since v1.0.0

The primary developer hook for registering custom merge tags. Fires inside EmailRenderer::render() at render time, per recipient. $tags is pre-populated with global tags (subscriber name, email, show title, RSS URL, unsubscribe URL, site name, year) and email-type-specific initial tags. Add keys to $tags to introduce new {{tag}} → value substitutions. Type-specific variant: benecaster_email_merge_tags_{type} — 3 params, $email_type omitted; fires immediately after the shared filter.

Parameters

Name Type Default Description
$tags array Array of {tag => value} pairs; pre-populated with global and type-specific tags
$email_type string Email type string
$user_id int|null WordPress user ID; null for admin-only emails
$show_id int|null ID of the show; null when not show-specific

Returns: array

Example

add_filter( 'benecaster_email_merge_tags', function( $tags, $email_type, $user_id, $show_id ) {
    // Add a {{member_since}} tag showing when this subscriber joined.
    if ( $user_id && $show_id ) {
        $joined = get_user_meta( $user_id, '_benecaster_joined_' . $show_id, true );
        if ( $joined ) {
            $tags['member_since'] = date_i18n( get_option( 'date_format' ), strtotime( $joined ) );
        }
    }
    return $tags;
}, 10, 4 );