BP_Email_Tokens::token__group_card( BP_Email $bp_email, array $formatted_tokens, array $tokens )
Generate the output for token group.card
Description
Parameters
- $bp_email
-
(Required)
- $formatted_tokens
-
(Required)
- $tokens
-
(Required)
Return
(string) html for the output
Source
File: bp-core/classes/class-bp-email-tokens.php
public function token__group_card( $bp_email, $formatted_tokens, $tokens ) { $output = ''; $group = isset( $tokens['group'] ) ? $tokens['group'] : false; if ( empty( $group ) ) { $group_id = isset( $tokens['group.id'] ) ? $tokens['group.id'] : false; if ( empty( $group_id ) ) { return $output; } $group = groups_get_group( $group_id ); } if ( empty( $group ) ) { return $output; } ob_start(); ?> <div class="card_wrapper card_group card_group_small" style="border-radius: 5px; padding: 10px;"> <table cellspacing="0" cellpadding="0" border="0" width="100%"> <?php if ( bp_is_active( 'groups', 'cover_image' ) && ! bp_disable_cover_image_uploads() && bp_attachments_is_wp_version_supported() ) { $cover_image = bp_attachments_get_attachment( 'url', array( 'object_dir' => 'groups', 'item_id' => $group_id, ) ); echo "<tr><td colspan='100%'><img src='{$cover_image}'></td></tr>"; } ?> <tr> <td> <a href="<?php echo bp_get_group_permalink( $group ); ?>" style="border: 1px solid <?php echo esc_attr( $settings['body_border_color'] ); ?>; display: block; border-radius: 3px; width: 100px;"> <img alt="" src="<?php echo bp_core_fetch_avatar( array( 'item_id' => $group->id, 'avatar_dir' => 'group-avatars', 'object' => 'group', 'type' => 'full', 'width' => 200, 'height' => 200, 'html' => false ) ); ?>" width="100" height="100" style="margin:0; padding:0; box-sizing: border-box; border-radius: 3px; border:3px solid <?php echo esc_attr( $settings['body_bg'] ); ?>; display:block;" border="0"/> </a> </td> <td> <h3><?php echo $group->name; ?></h3> <div class="spacer" style="font-size: 7px; line-height: 7px; height: 7px;"> </div> <?php echo ucfirst( $group->status ) . " " . __( 'Group', 'buddyboss' ); ?><br> <table cellspacing="0" cellpadding="0" border="0" width="100%"> <tr> <td align="left"> <?php if ( bp_is_active( 'activity' ) ) { global $wpdb; $activity_table = buddypress()->activity->table_name; $sql = array( 'select' => "SELECT user_id, max( date_recorded ) as date_recorded FROM {$activity_table}", 'where' => array(), 'groupby' => 'GROUP BY user_id', 'orderby' => 'ORDER BY date_recorded', 'order' => 'DESC', ); $sql['where'] = array( 'item_id = ' . absint( $group->id ), $wpdb->prepare( "component = %s", buddypress()->groups->id ), ); $sql['where'] = 'WHERE ' . implode( ' AND ', $sql['where'] ); $sql['limit'] = 'LIMIT 4'; $group_user_ids = $wpdb->get_results( "{$sql[ 'select' ]} {$sql[ 'where' ]} {$sql[ 'groupby' ]} {$sql[ 'orderby' ]} {$sql[ 'order' ]} {$sql[ 'limit' ]}" ); $group_user_ids = wp_list_pluck( $group_user_ids, 'user_id' ); $output = "<span class='bs-group-members'>"; foreach ( $group_user_ids as $user_id ) { $avatar = bp_core_fetch_avatar( array( 'item_id' => $user_id, 'avatar_dir' => 'avatars', 'object' => 'user', 'type' => 'full', 'html' => false ) ); if ( ! empty( $avatar ) ) { $output .= sprintf( "<img src='%s' alt='%s'>", $avatar, bp_core_get_user_displayname( $user_id ) ); } } $output .= "</span>"; $output .= "<span class='members'>" . groups_get_total_member_count( $group->id ) . " " . __( 'Members', 'buddyboss' ) . "</span>"; echo $output; } ?> </td> <td align="right"> <a class="button-primary" href="<?php echo bp_get_group_permalink( $group ); ?>"> <?php $joined_status = 'unknown'; $recepients = $bp_email->get_to(); if ( ! empty( $recepients ) && count( $recepients ) === 1 ) { // BP_Email_Recipient $recepient = reset( $recepients ); $user = $recepient->get_user(); if ( ! empty( $user ) ) { if ( groups_is_user_member( $user->ID, $group->id ) ) { $joined_status = 'joined'; } else { $joined_status = 'not-joined'; } } } switch ( $joined_status ) { case 'joined': _e( 'Leave Group', 'buddyboss' ); break; case 'not-joined': _e( 'Join Group', 'buddyboss' ); break; default: _e( 'Visit Group', 'buddyboss' ); break; } ?> </a> </td> </tr> </table> </td> </tr> </table> <div class="spacer" style="font-size: 10px; line-height: 10px; height: 10px;"> </div> </div> <?php $output = str_replace( array( "\r", "\n" ), '', ob_get_clean() ); return $output; }
Changelog
Version | Description |
---|---|
BuddyBoss 1.0.0 | Introduced. |
Questions?
We're always happy to help with code or other questions you might have! Search our developer docs, contact support, or connect with our sales team.