array( 'isMentionEnabled' => bp_is_active( 'activity' ) && bp_activity_do_mentions(), 'isAvatarEnabled' => $bp->avatar && $bp->avatar->show_avatars, 'isCoverImageEnabled' => bp_is_active( 'members', 'cover_image' ), ), ) ); } add_filter( 'bp_blocks_editor_settings', 'bp_members_editor_settings' ); /** * Callback function to render the BP Member Block. * * @since 6.0.0 * * @param array $attributes The block attributes. * @return string HTML output. */ function bp_members_render_member_block( $attributes = array() ) { $bp = buddypress(); $block_args = wp_parse_args( $attributes, array( 'itemID' => 0, 'avatarSize' => 'full', 'displayMentionSlug' => true, 'displayActionButton' => true, 'displayCoverImage' => true, ) ); if ( ! $block_args['itemID'] ) { return; } // Set the member ID and container classes. $member_id = (int) $block_args['itemID']; $container_classes = array( 'bp-block-member' ); // Mention variables. $username = bp_core_get_username( $member_id ); $at_mention = ''; // Avatar variables. $avatar = ''; $avatar_container = ''; // Cover image variable. $cover_image = ''; $cover_style = ''; $cover_container = ''; // Member name variables. $display_name = bp_core_get_user_displayname( $member_id ); $member_link = bp_core_get_user_domain( $member_id ); // Member action button. $action_button = ''; $display_action_button = (bool) $block_args['displayActionButton']; if ( $bp->avatar && $bp->avatar->show_avatars && in_array( $block_args['avatarSize'], array( 'thumb', 'full' ), true ) ) { $avatar = bp_core_fetch_avatar( array( 'item_id' => $member_id, 'object' => 'user', 'type' => $block_args['avatarSize'], 'html' => false, ) ); $container_classes[] = 'avatar-' . $block_args['avatarSize']; } else { $container_classes[] = 'avatar-none'; } if ( $avatar ) { $avatar_container = sprintf( '
', esc_url( $member_link ), esc_url( $avatar ), /* translators: %s: member name */ sprintf( esc_html__( 'Profile photo of %s', 'buddypress' ), $display_name ) ); } $display_cover_image = (bool) $block_args['displayCoverImage']; if ( bp_is_active( 'members', 'cover_image' ) && $display_cover_image ) { $cover_image = bp_attachments_get_attachment( 'url', array( 'item_id' => $member_id, ) ); if ( $cover_image ) { $cover_style = sprintf( ' style="background-image: url( %s );"', esc_url( $cover_image ) ); } $cover_container = sprintf( '', $cover_style ); $container_classes[] = 'has-cover'; } $display_mention_slug = (bool) $block_args['displayMentionSlug']; if ( bp_is_active( 'activity' ) && bp_activity_do_mentions() && $display_mention_slug ) { $at_mention = sprintf( '@%s', esc_html( $username ) ); } if ( $display_action_button ) { $action_button = sprintf( '', esc_url( $member_link ), esc_html__( 'View Profile', 'buddypress' ) ); } $output = sprintf( '