Skip to:
Content
Pages
Categories
Search
Top
Bottom

Forum Replies Created

Viewing 2 replies - 1 through 2 (of 2 total)

  • highvibes95
    Participant

    @highvibes95

    Replying to me.

    After pasting the above code you will see a new widget- (Recently Active Member Custom) in the widget sections. Add it at your respective place and it works.


    highvibes95
    Participant

    @highvibes95

    Hi All,
    I googled a lot and read many posts but found no code snippet to show member names along the profile avatars of the BP Recently Active Members widget. So i created my own widget and that is super easy to do. I took the core class of the above widget did a single line modification to display names also and registered it as a widget through functions.php
    Just paste the below code in functions.php of your child theme and it will work.

    class wpb_widget extends WP_Widget {

    function __construct() {
    parent::__construct(

    // Base ID of your widget
    ‘wpb_widget’,

    // Widget name will appear in UI
    __(‘Recently Active Member Custom’, ‘wpb_widget_domain’),

    // Widget description
    array( ‘description’ => __( ‘Sample widget based on WPBeginner Tutorial’, ‘wpb_widget_domain’ ), )
    );
    }

    // Creating widget front-end

    public function widget( $args, $instance ) {
    global $members_template;

    // Get widget settings.
    $settings = $this->parse_settings( $instance );

    /**
    * Filters the title of the Recently Active widget.
    *
    * @since 1.8.0
    * @since 2.3.0 Added ‘instance’ and ‘id_base’ to arguments passed to filter.
    *
    * @param string $title The widget title.
    * @param array $settings The settings for the particular instance of the widget.
    * @param string $id_base Root ID for all widgets of this type.
    */
    $title = apply_filters( ‘widget_title’, $settings[‘title’], $settings, $this->id_base );

    echo $args[‘before_widget’];
    echo $args[‘before_title’] . $title . $args[‘after_title’];

    $max_limit = bp_get_widget_max_count_limit( __CLASS__ );
    $max_members = $settings[‘max_members’] > $max_limit ? $max_limit : (int) $settings[‘max_members’];

    // Setup args for querying members.
    $members_args = array(
    ‘user_id’ => 0,
    ‘type’ => ‘active’,
    ‘per_page’ => $max_members,
    ‘max’ => $max_members,
    ‘populate_extras’ => true,
    ‘search_terms’ => false,
    );

    // Back up global.
    $old_members_template = $members_template;

    ?>

    <?php if ( bp_has_members( $members_args ) ) : ?>

    <div class=”avatar-block”>

    <?php while ( bp_members() ) : bp_the_member(); ?>

    <span class=”item-avatar”>
    ” class=”bp-tooltip” data-bp-tooltip=”<?php bp_member_name(); ?>”><?php bp_member_avatar(); ?>
    ” class=”bp-tooltip” data-bp-tooltip=”<?php bp_member_name(); ?>”><?php bp_member_name(); ?>
    </span>

    <?php endwhile; ?>

    </div>

    <?php else: ?>

    <div class=”widget-error”>
    <?php esc_html_e( ‘There are no recently active members’, ‘buddypress’ ); ?>
    </div>

    <?php endif; ?>

    <?php echo $args[‘after_widget’];

    // Restore the global.
    $members_template = $old_members_template;
    }

    /**
    * Update the Recently Active widget options.
    *
    * @since 1.0.3
    *
    * @param array $new_instance The new instance options.
    * @param array $old_instance The old instance options.
    * @return array $instance The parsed options to be saved.
    */
    public function update( $new_instance, $old_instance ) {
    $instance = $old_instance;

    $max_limit = bp_get_widget_max_count_limit( __CLASS__ );

    $instance[‘title’] = strip_tags( $new_instance[‘title’] );
    $instance[‘max_members’] = $new_instance[‘max_members’] > $max_limit ? $max_limit : intval( $new_instance[‘max_members’] );

    return $instance;
    }

    /**
    * Output the Recently Active widget options form.
    *
    * @since 1.0.3
    *
    * @param array $instance Widget instance settings.
    * @return void
    */
    public function form( $instance ) {
    $max_limit = bp_get_widget_max_count_limit( __CLASS__ );

    // Get widget settings.
    $settings = $this->parse_settings( $instance );
    $title = strip_tags( $settings[‘title’] );
    $max_members = $settings[‘max_members’] > $max_limit ? $max_limit : intval( $settings[‘max_members’] );
    ?>

    <p>
    <label for=”<?php echo $this->get_field_id( ‘title’ ); ?>”>
    <?php esc_html_e( ‘Title:’, ‘buddypress’ ); ?>
    <input class=”widefat” id=”<?php echo $this->get_field_id( ‘title’ ); ?>” name=”<?php echo $this->get_field_name( ‘title’ ); ?>” type=”text” value=”<?php echo esc_attr( $title ); ?>” style=”width: 100%” />
    </label>
    </p>

    <p>
    <label for=”<?php echo $this->get_field_id( ‘max_members’ ); ?>”>
    <?php esc_html_e( ‘Max members to show:’, ‘buddypress’ ); ?>
    <input class=”widefat” id=”<?php echo $this->get_field_id( ‘max_members’ ); ?>” name=”<?php echo $this->get_field_name( ‘max_members’ ); ?>” type=”number” min=”1″ max=”<?php echo esc_attr( $max_limit ); ?>” value=”<?php echo esc_attr( $max_members ); ?>” style=”width: 30%” />
    </label>
    </p>

    <?php
    }

    /**
    * Merge the widget settings into defaults array.
    *
    * @since 2.3.0
    *
    *
    * @param array $instance Widget instance settings.
    * @return array
    */
    public function parse_settings( $instance = array() ) {
    return bp_parse_args( $instance, array(
    ‘title’ => __( ‘Recently Active Members’, ‘buddypress’ ),
    ‘max_members’ => 15,
    ), ‘recently_active_members_widget_settings’ );
    }
    }

    // Register and load the widget
    function wpb_load_widget() {
    register_widget( ‘wpb_widget’ );
    }
    add_action( ‘widgets_init’, ‘wpb_load_widget’ );

Viewing 2 replies - 1 through 2 (of 2 total)
Skip to toolbar