Make WordPress Core


Ignore:
Timestamp:
05/23/2026 06:16:45 PM (4 hours ago)
Author:
SergeyBiryukov
Message:

Role/Capability: Add is_user_member_of_blog filter.

This aims to make it easier to dynamically grant or revoke a user access to the site without giving them a role directly.

Follow-up to mu:804, [19016].

Props dd32, mukesh27.
Fixes #65096.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/wp-includes/user.php

    r61735 r62413  
    11531153 *
    11541154 * @since MU (3.0.0)
     1155 * @since 7.1.0 Introduced the {@see 'is_user_member_of_blog'} filter.
    11551156 *
    11561157 * @global wpdb $wpdb WordPress database abstraction object.
     
    12021203        $capabilities_key = $wpdb->base_prefix . $blog_id . '_capabilities';
    12031204    }
    1204     $has_cap = get_user_meta( $user_id, $capabilities_key, true );
    1205 
    1206     return is_array( $has_cap );
     1205
     1206    $has_cap   = get_user_meta( $user_id, $capabilities_key, true );
     1207    $is_member = is_array( $has_cap );
     1208
     1209    /**
     1210     * Filters whether the user is a member of a given blog.
     1211     *
     1212     * This filter only runs when the user and blog have both been resolved
     1213     * to valid records on a multisite installation; it is not invoked for
     1214     * logged-out requests, unknown users, or archived/spammed/deleted sites.
     1215     *
     1216     * @since 7.1.0
     1217     *
     1218     * @param bool $is_member Whether the user is a member of the blog.
     1219     * @param int  $user_id   The user ID being checked.
     1220     * @param int  $blog_id   The blog ID being checked.
     1221     */
     1222    return (bool) apply_filters( 'is_user_member_of_blog', $is_member, $user_id, $blog_id );
    12071223}
    12081224
Note: See TracChangeset for help on using the changeset viewer.