AsynCRONous bbPress Subscriptions

AsynCRONous bbPress Subscriptions Install Statistics

0
100%
Today: 0 Yesterday: 0 All-time: 5,717 downloads
AsynCRONous bbPress Subscriptions Icon

Try plugin: AsynCRONous bbPress Subscriptions

We'll create fresh WordPress site with AsynCRONous bbPress Subscriptions installed. You have 20 minutes to test the plugin after that site we'll be deleted.

Takes ~10 seconds to install.

About AsynCRONous bbPress Subscriptions

Email notifications done right. No BCC lists, no added page load time, better performance.

8


0


0


0


0

updated: 4 years ago
since: 9 years ago

Description

Per default, bbPress is sending subscription notification emails as one email with a bunch of BCCs. There are various reasons why it would make more sense to send individual emails. This plugin does that, quietly in the background via WP cron, without slowing down page load times. Also increases notification performance and reduces database load on large sites.

Translations by @mauriciogarofalo and @mechter

Defaults

If you don’t customize this plugin, this is what you’ll get:

  • Sends mails from "MyBlog <[email protected]>" (with your Blog’s name and admin email)
  • Sends mail to "Markus <[email protected]>" (with the name being the user’s display name on the forums, not their username)
  • Subject and Message have more user friendly defaults, use the available filters (see below) to make them your own.

Customization

You can install and activate this plugin and it just works, but you have full control over the details if you want to. Below are some filters and code snippets that help you do what you want. If you’re new to working directly with code, please see the example at the bottom of this page.

Available filters

bbp_subscription_email_from( $from ) // $from can be a string or array('name'=>string, 'address'=>string)
bbp_subscription_email_recipients( $recipients ) // $recipients is array of array('name'=>string, 'address'=>string)
bbp_subscription_email_headers( $headers )
bbp_forum_subscription_email_subject( $subject, $forum_id, $topic_id )
bbp_forum_subscription_email_message( $message, $forum_id, $topic_id )
bbp_topic_subscription_email_subject( $subject, $forum_id, $topic_id, $reply_id )
bbp_topic_subscription_email_message( $message, $forum_id, $topic_id, $reply_id )

bbp_bounce_address( $bounce_address )

bbp_subscription_disable_async( false )
bbp_forum_subscription_disable_async( false )
bbp_topic_subscription_disable_async( false )
bbp_forum_subscription_notify_author( false )
bbp_topic_subscription_notify_author( false )

Helpful Snippets

Here are some pointers to get the data you might want in your notifications:

$blog_name = get_bloginfo( 'name' );

$forum_title = bbp_get_forum_title( $forum_id );

$topic_author_user_id = bbp_get_topic_author_id( $topic_id );
$topic_author_display_name = bbp_get_topic_author_display_name( $topic_id );
$topic_title = wp_specialchars_decode( strip_tags( bbp_get_topic_title( $topic_id ) ), ENT_QUOTES );
$topic_content = wp_specialchars_decode( strip_tags( bbp_get_topic_content( $topic_id ) ), ENT_QUOTES );
$topic_url = get_permalink( $topic_id );

$reply_author_user_id = bbp_get_reply_author_id( $reply_id );
$reply_author_display_name = bbp_get_topic_author_display_name( $reply_id );
$reply_content = strip_tags( bbp_get_reply_content( $reply_id ) );
$reply_url = bbp_get_reply_url( $reply_id ); // note that it's not get_permalink()

Example

To have a nice subject line for new topic notifications, add this to your theme’s functions.php. If your theme does not have this file, you can simply create it and it will be loaded automatically. Note how the example is basically just one of the filters above, mixed with some of the snippets and a return statement. It’s that simple.

add_filter( 'bbp_forum_subscription_email_subject', function( $subject, $forum_id, $topic_id ) {
    $blog_name = get_bloginfo( 'name' );
    $topic_author_display_name = bbp_get_topic_author_display_name( $topic_id );
    $topic_title = wp_specialchars_decode( strip_tags( bbp_get_topic_title( $topic_id ) ), ENT_QUOTES );
    return "[$blog_name] $topic_author_display_name created a new topic: $topic_title";
}, 10, 3); // first is priority (10 is default and just fine), second is number of arguments your filter expects