Everyone who can approve membership applications on a site (the add_users capability, the same one that gives access to Users > Pending Approval) gets a BuddyPress notification when applications are waiting. It is a BuddyPress notification only; no email is sent.
What approvers see
- One notification per site, never one per application: “Jane Smith applied to join Princes Park Touch”, or “Jane Smith and 4 others applied to join Princes Park Touch”. The name is the most recent applicant and the site name is always shown, because notifications are shared across the network.
- It links to Users > Pending Approval on that site.
- The text is worked out each time it is shown, from the applications pending at that moment, so the count is always current.
When it changes
- New application. Only a complete application counts: one that has passed the required-details check and accepted the terms, so it appears under Pending Approval. The approver’s notification for that site is replaced and comes back unread. Incomplete applications never notify.
- Opening Pending Approval marks the approver’s notification for that site read.
- Approving or rejecting. Once nothing on the site is pending, every approver’s notification for it is deleted. While anything is still pending it is left alone, since the live count already reflects the change.
How it is stored
Component lh_membership, action membership_pending. The item_id is the blog ID and the secondary_item_id the latest applicant, the same shape BuddyPress uses for group membership requests. Someone who later loses add_users may keep a stale row; it shows nothing once the site has no pending applications.
Hooks
lh_membership_pending_application_approver_ids( int[] $user_ids, int $blog_id ): who is notified.lh_membership_make_user_member_in_backend( int $user_id ): fires after an application is approved.lh_membership_decline_application_in_backend( int $user_id ): fires after an application is rejected.
The code is in includes/lh-membership-pending-notifications-class.php. (Since 2.98.0.)