Osisis

Admin Bar Notification Dropdown Menu

Jul 8th, 2015
711
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.54 KB | None | 0 0
  1. `function bp_messages_notifications_menu() {
  2. global $wp_admin_bar;
  3.  
  4. if ( ! is_user_logged_in() ) {
  5. return false;
  6. }
  7. $messages = bp_get_total_unread_messages_count( bp_loggedin_user_id(), 'object' );
  8. $count = ! empty( $messages ) ? count( $messages ) : 0;
  9. $alert_class = (int) $count > 0 ? 'pending-count alert' : 'count no-alert';
  10. $menu_title = '<span class="ab-icon"></span><span id="ab-pending-notifications" class="' . $alert_class . '">' . number_format_i18n( $count ) . '</span>';
  11. $menu_link = trailingslashit( bp_loggedin_user_domain() . bp_get_messages_slug() );
  12.  
  13. /** Add the top-level Notifications button **/
  14. $wp_admin_bar->add_menu( array(
  15. 'parent' => 'top-secondary',
  16. 'id' => 'messages-personal-li',
  17. 'title' => $menu_title,
  18. 'href' => $menu_link,
  19. ) );
  20.  
  21. $sender_name = bp_core_get_user_displayname( $sender_id );
  22. $message = new BP_Messages_Message( $item_id );
  23. $thread_id = $message->thread_id;
  24. $title = sprintf( __( '%s sent you a new private message', 'buddypress' ), $sender_name );
  25.  
  26. if ( bp_message_thread_has_unread() ) {
  27. foreach ( (array) $messages as $message ) {
  28. $wp_admin_bar->add_menu( array(
  29. 'parent' => 'messages-personal-li',
  30. 'id' => 'message-threads',
  31. 'title' => $title,
  32. 'href' => $menu_link,
  33. ) );
  34. }
  35. } else {
  36. $wp_admin_bar->add_menu( array(
  37. 'parent' => 'messages-personal-li',
  38. 'id' => 'no-notifications',
  39. 'title' => __( 'No new messages', 'buddypress' ),
  40. ) );
  41. }
  42.  
  43. return;
  44. }
  45. add_action( 'admin_bar_menu', 'bp_messages_notifications_menu', 90 );`
Advertisement
Add Comment
Please, Sign In to add comment