Current File : /var/www/e360ban/wp-content/plugins/wp-shortcodes-usuarios/integraciones/buddypress.php
<?php

/**
 * Datos de BuddyPress
 * copyright Enrique J. Ros - enrique@enriquejros.com
 *
 * @author 			Enrique J. Ros
 * @link 			https://www.enriquejros.com
 * @since 			1.0.0
 * @package 		WPShortcodesUsuarios
 *
 * http://hookr.io/plugins/buddypress/#index
 *
 */

defined ('ABSPATH') or exit;

Class WP_Shortcodes_Usuarios_BuddyPress  {

	public function __construct ($dato_shortcode, $user_id, $shortcode_id) {

		$this->resultado = false;

		switch ($dato_shortcode) {

			case 'enlace_perfil_bp':

				$this->resultado = bp_core_get_userlink ($user_id);
				break;

			case 'url_perfil_bp':

				$this->resultado = bp_core_get_user_domain ($user_id);
				break;

			case 'foto_perfil_bp':

				$datos = get_userdata ($user_id);
				$size  = apply_filters ('wp_shortcodes_usuarios_bp_imagen_perfil', get_field ('size', $shortcode_id), $shortcode_id);

				/**
				 * Para cambiar el tamaño por encima del máximo:
				 *
				 * add_filter ('wp_shortcodes_usuarios_bp_imagen_perfil', function ($size) {
				 *
				 *		return 500;
				 *		}, 10, 1);
				 *
				 */

				$this->resultado = get_avatar ($datos->user_email, $size);

				break;

			case 'imagen_portada_bp':

				$this->resultado = ($url = bp_attachments_get_attachment ('url', ['item_id' => $user_id])) ? sprintf ('<img src="%s" />', $url) : false;
				break;

			case 'num_grupos_creador_bp':

				$this->resultado = 0;

				foreach (groups_get_user_groups($user_id)['groups'] as $grupo_id)
					if ($grupo = groups_get_group (['group_id' => $grupo_id]) and $grupo->creator_id == $user_id)
						$this->resultado++;

				break;

			case 'lista_grupos_creador_bp':

				$grupos = [];
				$enlace = apply_filters ('wp_shortcodes_usuarios_bp_grupos_creador_enlace', true, $shortcode_id);

				/**
				 * Si queremos que la lista no incluya un enlace a cada grupo:
				 *
				 * add_filter ('wp_shortcodes_usuarios_bp_grupos_creador_enlace', '__return_false');
				 *
				 */

				foreach (groups_get_user_groups($user_id)['groups'] as $grupo_id)
					if ($grupo = groups_get_group (['group_id' => $grupo_id]) and $grupo->creator_id == $user_id)
						$grupos[] = $grupo;

				if (count ($grupos)) {

					$this->resultado = '<ul class="wp-shortcodes-grupos-creados">';

					foreach ($grupos as $grupo)
						$this->resultado .= $enlace ? sprintf ('<li>%s</li>', bp_get_group_link ($grupo), $grupo->name) : sprintf ('<li>%s</li>', $grupo->name);

					$this->resultado .= '</ul>';
					}

				break;

			case 'num_grupos_miembro_bp':

				$this->resultado = groups_get_user_groups ($user_id)['total'];
				break;

			case 'lista_grupos_miembro_bp':

				$grupos = [];
				$enlace = apply_filters ('wp_shortcodes_usuarios_bp_grupos_miembro_enlace', true, $shortcode_id);

				/**
				 * Si queremos que la lista no incluya un enlace a cada grupo:
				 *
				 * add_filter ('wp_shortcodes_usuarios_bp_grupos_miembro_enlace', '__return_false');
				 *
				 */

				foreach (groups_get_user_groups($user_id)['groups'] as $grupo_id)
					if ($grupo = groups_get_group (['group_id' => $grupo_id]))
						$grupos[] = $grupo;

				if (count ($grupos)) {

					$this->resultado = '<ul class="wp-shortcodes-grupos-miembro">';

					foreach ($grupos as $grupo)
						$this->resultado .= $enlace ? sprintf ('<li>%s</li>', bp_get_group_link ($grupo), $grupo->name) : sprintf ('<li>%s</li>', $grupo->name);

					$this->resultado .= '</ul>';
					}

				break;

			case 'num_amigos_bp':

				$this->resultado = friends_get_friend_count_for_user ($user_id);
				break;

			case 'lista_amigos_bp':
			case 'nuevos_amigos_bp':
			case 'amigos_activos_bp':

				if ('lista_amigos_bp' == $dato_shortcode)
					$funcion = 'friends_get_alphabetically';

				else if ('nuevos_amigos_bp' == $dato_shortcode)
					$funcion = 'friends_get_newest';

				else if ('amigos_activos_bp' == $dato_shortcode)
					$funcion = 'friends_get_recently_active';

				$ninguno = apply_filters ('wp_shortcodes_usuarios_bp_lista_amigos_ninguno', false, $shortcode_id);

				/**
				 * Si queremos mostrar un mensaje en caso de que no haya amigos en la lista:
				 *
				 * add_filter ('wp_shortcodes_usuarios_bp_lista_amigos_ninguno', function ($mensaje) {
				 *
				 *		return 'Mensaje a mostrar';
				 * 		}, 10, 1);
				 *
				 */

				$enlace = apply_filters ('wp_shortcodes_usuarios_bp_lista_amigos_enlace', true, $shortcode_id);

				/**
				 * Si queremos que la lista no incluya un enlace al perfil de cada amigo:
				 *
				 * add_filter ('wp_shortcodes_usuarios_bp_lista_amigos_enlace', '__return_false');
				 *
				 */

				$amigos = $funcion ($user_id);

				if ($amigos['total']) {

					$this->resultado = '<ul class="wp-shortcodes-lista-amigos">';

					foreach ($amigos['users'] as $amigo)
						$this->resultado .= $enlace ? sprintf ('<li>%s</li>', bp_core_get_userlink ($amigo->ID)) : sprintf ('<li>%s</li>', $amigo->display_name);

					$this->resultado .= '</ul>';
					}

				else
					$this->resultado = $ninguno;

				break;
			}

		return $this->resultado;
		}

	}
Page Not Found
Parece que el enlace que apuntaba aquí no sirve. ¿Quieres probar con una búsqueda?
¡Hola!