benecaster_email_merge_tags
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 );