- Timestamp:
- 03/20/2025 07:10:28 PM (11 months ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/12.0/src/bp-notifications/bp-notifications-functions.php
r13499 r14107 669 669 670 670 /** 671 * Mark a batch of notifications as read or unread or delete them. 672 * 673 * @since 12.5.3 (Backported from 14.3.4) 674 * 675 * @param string $user_id Action to run on notifications. 676 * @param array $notification_ids IDs of the notifications to change. 677 * @return bool True if the action run returned true. 678 */ 679 function bp_notifications_bulk_manage_notifications( $action, $notification_ids = array() ) { 680 $notification_ids = wp_parse_id_list( $notification_ids ); 681 if ( empty( $notification_ids ) ) { 682 return false; 683 } 684 685 if ( ! current_user_can( 'bp_manage' ) ) { 686 // Regular users can only manage their own notifications. 687 $all_user_notifications = BP_Notifications_Notification::get( 688 array( 689 'user_id' => bp_loggedin_user_id(), 690 'is_new' => 'both', // Allow unread and read notices to be found. 691 'update_meta_cache' => false, 692 ) 693 ); 694 $all_user_notifications_ids = wp_list_pluck( $all_user_notifications, 'id' ); 695 $notification_ids = array_intersect( $notification_ids, $all_user_notifications_ids ); 696 if ( empty( $notification_ids ) ) { 697 return false; 698 } 699 } 700 701 // Delete, mark as read or unread depending on the 'action'. 702 $result = false; 703 switch ( $action ) { 704 case 'delete': 705 $result = bp_notifications_delete_notifications_by_ids( $notification_ids ); 706 break; 707 708 case 'read': 709 $result = bp_notifications_mark_notifications_by_ids( $notification_ids, false ); 710 break; 711 712 case 'unread': 713 $result = bp_notifications_mark_notifications_by_ids( $notification_ids, true ); 714 break; 715 } 716 717 return ( bool ) $result; 718 } 719 720 /** 671 721 * Check if a user has access to a specific notification. 672 722 *
Note: See TracChangeset
for help on using the changeset viewer.