/**
 * Initiates this plugin by setting up the site subscriber component.
 * @return void
 */
function bp_site_subscriber_init()
{
    if (version_compare(BP_VERSION, '2.3', '>')) {
        // Buddypress component that handles the notifications
        require_once dirname(__FILE__) . '/includes/notifier.php';
        BP_Site_Subscriber::__setup();
        //Adds a widget with the subscribe to site button
        require_once dirname(__FILE__) . '/includes/widget.php';
    }
}
 /**
  * Front-end display of widget.
  *
  * @see WP_Widget::widget()
  *
  * @param array $args     Widget arguments.
  * @param array $instance Saved values from database.
  */
 public function widget($args, $instance)
 {
     // Only enqueue JS if widget is used
     wp_enqueue_script('bp-site-subscriber', WP_PLUGIN_URL . '/' . plugin_basename(BP_SITE_SUBSCRIBER_PLUGIN_DIR) . '/js/bp-site-subscriber.js', array('jquery'), '0.1', true);
     extract($args);
     if (isset($instance['title'])) {
         $title = apply_filters('widget_title', $instance['title']);
     } else {
         $title = '';
     }
     if (isset($instance['content'])) {
         $content = wpautop($instance['content']);
     } else {
         $content = '';
     }
     echo $before_widget;
     echo $before_title;
     echo $title;
     echo $after_title;
     echo $content;
     echo BP_Site_Subscriber::subscribe_button();
     echo $after_widget;
 }
 /**
  * Change subscription status
  */
 public function change_subscription()
 {
     check_ajax_referer('bp_site_subscriber_subscribe_nonce', 'bp_site_subscriber_subscribe');
     $user_id = get_current_user_id();
     $site_subscribers = get_option('bp_site_subscriber_subscribers', array());
     if (!in_array($user_id, $site_subscribers)) {
         $site_subscribers[] = $user_id;
         update_option('bp_site_subscriber_subscribers', $site_subscribers);
     } else {
         foreach ($site_subscribers as $key => $site_subscriber) {
             if ($user_id == $site_subscriber) {
                 unset($site_subscribers[$key]);
             }
         }
         update_option('bp_site_subscriber_subscribers', $site_subscribers);
     }
     echo BP_Site_Subscriber::subscribe_button();
     die;
 }