/** * 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; }