Advertisement
Guest User

bbPress check if is-subscribed

a guest
Jan 27th, 2014
75
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function shmoo_bbp_user_subscribe_check( $args = '', $user_id = 0 ) {
  2.     echo shmoo_bbp_get_user_subscribe_check( $args, $user_id );
  3. }
  4.     function shmoo_bbp_get_user_subscribe_check( $args = '', $user_id = 0 ) {
  5.         if ( ! bbp_is_subscriptions_active() ) {
  6.             return;
  7.         }
  8.  
  9.         // Parse arguments against default values
  10.         $r = bbp_parse_args( $args, array(
  11.             'subscribe'   => 'nope',
  12.             'unsubscribe' => 'yes',
  13.             'user_id'     => 0,
  14.             'topic_id'    => 0,
  15.             'forum_id'    => 0,
  16.         ), 'get_user_subscribe_link' );
  17.  
  18.         // Validate user and object ID's
  19.         $user_id  = bbp_get_user_id( $r['user_id'], true, true );
  20.         $topic_id = bbp_get_topic_id( $r['topic_id'] );
  21.         $forum_id = bbp_get_forum_id( $r['forum_id'] );
  22.         if ( empty( $user_id ) || ( empty( $topic_id ) && empty( $forum_id ) ) ) {
  23.             return false;
  24.         }
  25.  
  26.         // No link if you can't edit yourself
  27.         if ( ! current_user_can( 'edit_user', (int) $user_id ) ) {
  28.             return false;
  29.         }
  30.  
  31.         // Check if viewing a single forum
  32.         if ( empty( $topic_id ) && ! empty( $forum_id ) ) {
  33.  
  34.             // Decide which link to show
  35.             $is_subscribed = bbp_is_user_subscribed_to_forum( $user_id, $forum_id );
  36.             if ( ! empty( $is_subscribed ) ) {
  37.                 $text       = $r['unsubscribe'];
  38.                 $query_args = array( 'action' => 'bbp_unsubscribe', 'forum_id' => $forum_id );
  39.             } else {
  40.                 $text       = $r['subscribe'];
  41.                 $query_args = array( 'action' => 'bbp_subscribe',   'forum_id' => $forum_id );
  42.             }
  43.  
  44.             $sub  = $is_subscribed ? 'is-subscribed' : '';
  45.             $html = sprintf( '%s', $sub );
  46.  
  47.  
  48.         } else {
  49.  
  50.             // Decide which link to show
  51.             $is_subscribed = bbp_is_user_subscribed_to_topic( $user_id, $topic_id );
  52.             if ( ! empty( $is_subscribed ) ) {
  53.                 $text       = $r['unsubscribe'];
  54.                 $query_args = array( 'action' => 'bbp_unsubscribe', 'topic_id' => $topic_id );
  55.             } else {
  56.                 $text       = $r['subscribe'];
  57.                 $query_args = array( 'action' => 'bbp_subscribe',   'topic_id' => $topic_id );
  58.             }
  59.  
  60.             $sub  = $is_subscribed ? 'is-subscribed' : '';
  61.             $html = sprintf( '%s', $sub );
  62.         }
  63.  
  64.         // Return the link
  65.         return apply_filters( 'bbp_get_user_subscribe_link', $html, $r, $user_id, $topic_id );
  66. }
Advertisement
Advertisement
Advertisement
RAW Paste Data Copied
Advertisement