Skip to:
Content
Pages
Categories
Search
Top
Bottom

Search Results for 'buddyboss'

Viewing 25 results - 1 through 25 (of 570 total)
  • Author
    Search Results
  • indigetal
    Participant

    I have now created 2 more tickets in addition to this one: #9239, “Add filter hook to bp_email_get_type_schema()” and #9237, “Add privacy column to bp_activity for per-item visibility control.”

    I am a BuddyBoss user who has developed several BuddyBoss-related plugins. However, I have decided to migrate to BuddyPress and bring over several features that come packaged with the BuddyBoss Platform plugin to BuddyPress in order to do so. As I work through the migration, I am identifying very small, but useful, contributions that BuddyBoss has made to the BuddyPress version that they merged into their plugin.

    I will continue adding more enhancement ticket requests as I work through the migration/extraction.

    indigetal
    Participant

    BuddyPress’s activity component has excellent query-level extensibility:

    From BP_Activity_Activity::get() — lines 666, 682

    $where_conditions = apply_filters( 'bp_activity_get_where_conditions', $where_conditions, $r, $select_sql, $from_sql, $join_sql );
    $join_sql = apply_filters( 'bp_activity_get_join_sql', $join_sql, $r, $select_sql, $from_sql, $where_sql );
    

    These filters allow any addon to inject WHERE clauses and JOINs into the main activity query without modifying core. BuddyBoss’s moderation system, for example, hooks into bp_activity_get_where_conditions to hide suspended content — all from addon-level code.

    The messages component has **no equivalent**. BP_Messages_Thread::get_current_threads_for_user() builds its SQL in a $sql array (lines 790–794) and executes it directly:

    $sql['select'] = 'SELECT m.thread_id, MAX(m.date_sent) AS date_sent';
    $sql['from']   = "FROM {$bp->messages->table_name_recipients} r INNER JOIN {$bp->messages->table_name_messages} m ON m.thread_id = r.thread_id {$meta_query_sql['join']}";
    $sql['where']  = "WHERE {$deleted_sql} {$user_id_sql} {$sender_sql} {$type_sql} {$search_sql} {$meta_query_sql['where']}";
    $sql['misc']   = "GROUP BY m.thread_id ORDER BY date_sent DESC {$pag_sql}";
    
    $thread_ids = $wpdb->get_results( implode( ' ', $sql ) );
    

    The only filter (bp_messages_thread_current_threads) fires AFTER the query on the fully-constructed result set (line 841) — meaning addons must filter in PHP, not SQL. This is:

    1. **A performance problem** — filtering in PHP means fetching rows from the database that will be discarded, and constructing full BP_Messages_Thread objects for threads that are then thrown away. This gets worse as thread count grows.
    2. **An extensibility gap** — addons that need custom thread filtering (archiving, priority inbox, moderation, read/unread management) have no clean way to modify the query
    3. **Inconsistent with the activity API** — activity has comprehensive pre-query filters; messages doesn’t

    #### Proposed Change

    Add filter hooks to get_current_threads_for_user() before query execution, following the pattern established by BP_Activity_Activity::get():

    After building $sql array (around line 794):

    
    /**
     * Filters the WHERE SQL for the current threads query.
     *
     * @since {next_version}
     *
     * @param string $where_sql  Current WHERE clause.
     * @param array  $r          Parsed query arguments.
     * @param string $select_sql Current SELECT clause.
     * @param string $from_sql   Current FROM clause (includes JOINs).
     */
    $sql['where'] = apply_filters( 'bp_messages_thread_get_where_conditions', $sql['where'], $r, $sql['select'], $sql['from'] );
    
    /**
     * Filters the FROM/JOIN SQL for the current threads query.
     *
     * @since {next_version}
     *
     * @param string $from_sql   Current FROM clause (includes JOINs).
     * @param array  $r          Parsed query arguments.
     * @param string $select_sql Current SELECT clause.
     * @param string $where_sql  Current WHERE clause.
     */
    $sql['from'] = apply_filters( 'bp_messages_thread_get_join_sql', $sql['from'], $r, $sql['select'], $sql['where'] );
    

    **Note on parameter style:** In BP_Activity_Activity::get(), the WHERE conditions are passed as an array (joined to a string after the filter), whereas in the messages method they are already a string. This proposal preserves the existing messages code structure and filters the string directly, which is the minimal-change approach. If BP maintainers prefer, the messages SQL could also be refactored to use an array of conditions for parity with activity — but filtering the string is sufficient for all the use cases described below.

    #### Scope

    • ~12 lines added to one file (class-bp-messages-thread.php)
    • Zero behavioral change — the filters pass through existing values by default
    • Follows the pattern established by the activity component’s existing filters
    • The existing bp_messages_thread_current_threads post-query filter continues to work as-is

    #### What This Enables for Addons

    With these hooks, addon plugins can implement:

    • **Message archiving** — Add is_hidden column to bp_messages_recipients, filter WHERE to exclude r.is_hidden = 1
    • **Message soft-delete** — Add is_deleted column to bp_messages_messages, filter FROM/JOIN to exclude deleted messages from thread listing
    • **Content moderation** — Inject suspend/block conditions into thread queries
    • **Priority inbox** — Filter by custom meta or thread properties
    • **Group messaging** — Filter threads by group membership context

    None of these features require core changes — they just need the ability to modify the query, which activity already provides but messages doesn’t.

    #### Prior Art

    BuddyBoss Platform needed exactly these extension points. Because the hooks don’t exist in BuddyPress core, BuddyBoss had to:

    1. **Restructure get_current_threads_for_user()** entirely — they replaced it with a delegating call to a new get_threads_for_user() method containing ~400 lines of rewritten SQL logic
    2. **Add is_hidden and is_deleted columns** directly into the restructured query conditions
    3. **Add their own filter hooks** — bp_messages_recipient_get_where_conditions and bp_messages_recipient_get_join_sql — with signatures functionally identical to what this proposal suggests

    The fact that BuddyBoss independently arrived at the same solution (pre-query filter hooks on the messages SQL) validates the need. If these hooks had existed in BuddyPress core, BuddyBoss could have achieved the same result from addon-level code without forking the class.

    I’m happy to submit a PR for this change.

    indigetal
    Participant

    BuddyPress activities have a single visibility control: hide_sitewide (0 or 1). This provides binary visibility — shown everywhere, or hidden from sitewide feeds. There’s no way to express:

    – **”Only me”** — private activity visible only to the author
    – **”Friends only”** — visible only to the author’s friends
    – **”Logged-in users”** — hidden from anonymous visitors
    – **”Group members only”** — visible only within the group context where it was posted

    Per-item privacy is a foundational social platform feature. Facebook has had it since 2009. LinkedIn, Twitter/X (with protected tweets), Instagram, and every major social network support some form of per-post audience control. It’s as fundamental to a social platform as hide_sitewide is — just multi-valued instead of binary.

    This is not a request for any specific addon’s needs. It’s a request for the same kind of infrastructure that hide_sitewide provides — a first-class column that any addon can use to implement privacy-aware features.

    #### Current State

    BuddyPress 14.4.0’s activity query system is well-designed for extensibility:

    bp_activity_get_where_conditions lets addons inject WHERE clauses
    bp_activity_get_join_sql lets addons add JOINs
    – Data hydration uses SELECT * (in populate() and the cache-miss path of get()), so any column added to the table is automatically returned to calling code
    bp_activity_before_save / bp_activity_after_save provide save-time hooks

    An addon **can** add a privacy column via dbDelta and filter queries via bp_activity_get_where_conditions. However, the save() method has a hardcoded column list in its INSERT/UPDATE SQL (in BP_Activity_Activity::save()), meaning an addon must do a separate $wpdb->update() after every save — a double-write on every activity creation. This works but is suboptimal, and the column’s general-purpose nature (used by media addons, document addons, moderation addons, group addons — not just one feature) argues for core inclusion.

    #### Proposed Change

    **Schema:** Add one column + index to bp_activity in bp_core_install_activity_streams() (in bp-core-admin-schema.php). dbDelta() handles adding the column on upgrade automatically:

    sql

    
    -- Added after the existing <code>is_spam</code> column in the CREATE TABLE definition:
    privacy varchar(75) NOT NULL DEFAULT 'public',
    -- Added to the KEY list:
    KEY privacy (privacy)
    

    **Model class (BP_Activity_Activity):**

    1. Add public $privacy = 'public'; property
    2. In save() — add privacy to the INSERT/UPDATE column list alongside the existing columns (user_id, component, type, action, content, etc.)
    3. In get() — add 'privacy' to the $r defaults (default false, meaning no filtering). When set, add AND a.privacy IN (...) to the WHERE conditions.

    **REST API (BP_REST_Activity_Endpoint):**

    4. In prepare_item_for_response() — expose privacy in the response object (paralleling how hide_sitewide is currently exposed as hidden)
    5. In prepare_item_for_database() — accept privacy as a writable field on create/update

    **Migration:** dbDelta() runs on every upgrade via bp_core_install(), so modifying the CREATE TABLE definition is sufficient for the schema change. A DB version bump in bp-core-update.php tracks the upgrade.

    #### Scope

    – ~40 lines of changes across 4 files (bp-core-admin-schema.php, class-bp-activity-activity.php, class-bp-rest-activity-endpoint.php, bp-core-update.php)
    – Default value 'public' — 100% backward compatible
    – Existing queries that don’t pass privacy return all activities as before
    hide_sitewide continues to work as-is (orthogonal — hide_sitewide controls directory listing, privacy controls per-item access)

    #### What Core Provides vs. What Addons Handle

    To be explicit about scope: this proposal adds **storage and query filtering only**. Core would:

    – Store the privacy value on each activity row
    – Allow get() callers to filter by privacy value(s)
    – Expose/accept the field through the REST API

    Core would **not** need to:

    – Define a fixed set of allowed values (addons register the values they need — e.g., 'onlyme', 'friends', 'loggedin')
    – Enforce access control based on privacy values (addons hook into bp_activity_get_where_conditions to inject viewer-aware WHERE clauses, exactly as they would today for any custom filtering)
    – Provide UI for selecting privacy (addon/theme territory)

    This mirrors how hide_sitewide works today — core stores the flag and filters on it; the decision of *when* to set it is made by callers (groups component, plugins, etc.).

    #### Prior Art

    BuddyBoss Platform (a BuddyPress-derived platform) implemented this exact column. Their bp_activity schema includes privacy varchar(75) NOT NULL DEFAULT 'public', and their media, document, video, and moderation subsystems all depend on it for privacy filtering. The column is referenced in their activity save/query paths, REST API, and template layer — making it one of the most cross-cutting additions they made to the activity table. The fact that an independent platform needed this to build standard social features demonstrates both the demand and the general-purpose nature of the column.

    I’m happy to submit a PR for this change.

    #338027
    emaralive
    Moderator

    You should contact BuddyBoss for support.

    elearnnow
    Participant

    Hi BuddyBoss community,

    I’m having trouble activating BuddyBoss components programmatically. I’ve tried several approaches, but the components aren’t being enabled. Here’s what I’ve attempted:

    Using bp_update_option()
    Direct database updates
    Different hooks (init, after_setup_theme)
    Current Behavior:

    No components activate
    No error messages in logs
    Tried both single site and multisite
    What I Need:

    A reliable way to activate components (Groups, Activity, Messages, etc.)
    Best practices for programmatic component management
    Any known issues with automatic component activation
    <?php
    /**
    * BuddyBoss Components Activator
    * Add this to your theme’s functions.php or as a must-use plugin
    */

    // Make sure we don’t expose any info if called directly
    if (!defined(‘ABSPATH’)) {
    exit;
    }

    // Hook into after_setup_theme to ensure BuddyBoss is loaded
    add_action(‘after_setup_theme’, ‘activate_buddyboss_components_on_init’, 9999);

    function activate_buddyboss_components_on_init() {
    // Check if BuddyBoss is active
    if (!function_exists(‘buddypress’)) {
    return;
    }

    // Get current active components
    $active_components = get_option(‘bp-active-components’, array());

    // Components we want to activate
    $components = array(
    ‘groups’ => 1,
    ‘activity’ => 1,
    ‘messages’ => 1,
    ‘notifications’ => 1,
    ‘friends’ => 1,
    ‘settings’ => 1,
    ‘xprofile’ => 1,
    ‘members’ => 1
    );

    // Merge with existing components
    $new_components = array_merge($active_components, $components);

    // Only update if there are changes
    if ($active_components != $new_components) {
    update_option(‘bp-active-components’, $new_components);

    // Clear BuddyBoss component cache
    if (function_exists(‘bp_core_reset_incrementor’)) {
    bp_core_reset_incrementor(‘bp_active_components’);
    }

    // Flush rewrite rules on next load
    set_transient(‘bb_flush_rewrite_rules’, ‘1’, 60);
    }
    }

    // Handle rewrite rules flush
    add_action(‘init’, ‘bb_maybe_flush_rewrite_rules’, 9999);
    function bb_maybe_flush_rewrite_rules() {
    if (get_transient(‘bb_flush_rewrite_rules’)) {
    delete_transient(‘bb_flush_rewrite_rules’);
    flush_rewrite_rules(false);
    }
    }

    #337890
    emaralive
    Moderator

    You should contact BuddyBoss for support.

    #337889
    manonetc
    Participant

    Buddyboss

    #337867
    emaralive
    Moderator

    OK, sounds good and I’ll consider this topic resolved. FWIW, BuddyBoss is a fork of BuddyPress with obvious differences.

    Take care.

    #337865
    phil1ooo
    Participant

    Hi

    Thanks for the response BUT I am the one that added/created these 2 fields as there was nothing there before that, wanting to see what they do and where and how they are displayed, then not happy with the result I want ed to delete them,, I did delete one as it had that option at the bottom right corner but this one has nothing.
    Having said that – based on Your comment – I will change the name to what Name? .

    Having said that I must tell you that I have since converted my plugin from BuddyPress to BuddyBoss and will be keeping that option as it has far more detailed usability which suits my needs better, BuddyPress was great though – I am not sure if yoiu are both connected to each other or not so if not, your help is still valuable for buddyboss although it added a few other fields, plus I am still using a few buddypress plugin extension with the buddyboss.

    Cheers
    Phil

    StudentFilmmakers
    Participant

    I was on buddyboss for a couple of years on a fairly popular site. I had issues several times and decided I wanted to move back to buddypress. We lost a lot of things. Photos mostly but also the activity feed is not what it was. Nothing shows when it loads in default setting of “everything” I can selected new members and that shows a member registered a year and a half ago and yet we have had new members everyday. Anyone have any thoughts on this? Your help is greatly appreciated.

    #337159
    jasperdemann
    Participant

    BB said:
    “I checked our BuddyBoss demo and found that there is no active menu color for the user dropdown menu. So, the design you’re seeing is entirely related to your website’s theme. BuddyBoss doesn’t provide any default active color styling for those menu items.”

    BuddyX Pro said:
    “Upon discussing your concern, we found that this issue is related to the core functionality of BuddyPress and BuddyBoss. Unfortunately, we will not be able to fix it from our end, as it falls outside our scope of control.”

    Somebody is definitely wrong!

    No problem.
    I spent some time today finding a workaround so I’m good now, thanks.

    #337152
    emaralive
    Moderator

    Either you have been misinformed or you have misunderstood what was being conveyed to you. The BuddyBoss Platform is not BuddyPress. Try BB again for support.

    BuddyBoss Home – Web

    emaralive
    Moderator

    Thanks for the screenshots, they do help. The page shown (General Settings) looks very similar to a page that is provided by the BuddyPress Groups Extras (BPGE) plugin, see the following screenshot:

    Truncated screenshot of BPGE plugin - General settings page

    As indicated in the screenshot, the Home or, in your case, the
    Activities tab is fixed in place by the code:

    
    if ( $nav['slug'] === 'home' ) {
    	$disabled = 'ui-state-disabled';
    }

    The above snippet can be found here and just indicates that the Home tab is disabled from being sortable. The following is what the element (li) has as classname (default ui-state-disabled) for a non sortable tab of which the only one is the Home tab.

    
    <li id="position_686f6d65" class="default ui-state-disabled">
         <strong>Home</strong>
    </li>

    While a sortable tab has default ui-sortable-handle as a classname.

    <li id="position_6d656d62657273" class="default ui-sortable-handle" style="">
          <strong>Members <span>1</span></strong>
    </li>

    The BPGE plugin author claims this change was due to:

    Group's "Activity"/"Home" navigation link is hard coded in BuddyPress to always be the first one, so disable its reordering.

    However, when I rollback from v3.7.0 to v3.6.10, the Home tab is now sortable and can be moved. So the reason for the change is not entirely true.

    Moving along, since the General Settings page from the BPGE plugin is similar to the page from your screenshots, we may be able to infer that there was a fork of some the code (the pages portion) from the BPGE plugin and was included in the BuddyBoss theme which AFAIK is a commercial (paid) theme, meaning I can’t verify the code within this theme due the status of free vs paid. If this is the case, then your resolve will have to come from the BuddyBoss developers. However, if the code that supports manage Page general setting resides elsewhere, e.g., custom code or 3rd party plugin, then the resolve is the responsibility of those who authored the code.

    As an aside, as it relates to the BPGE plugin, there is an appearance of wonkiness with the reordering of group tabs which appears to be a factor that caused the change to make the Home tab not sortable, however, I’m not sure if BuddyPress is causing the wonkiness,

    Having stated all of the above, it seems to me, the reason that you want the Pages tab to be the first tab is because you want that to be the landing page. Would this be a correct assumption? If so, there may be the possibility of changing the landing page to Pages, regardless of the tab order, which will depend on similar the code is similar enough to the BPGE plugin.

    #336464
    apteksolutions
    Participant

    Hi,
    I am also testing this plugin, and I am using it with buddyboss platform and buddyx pro theme. I am encountering the same issues, especially this one with hitting enter to send a message, I hope so omeone can help with this, but it seems this thread is not active 🙁 I might end up getting help from ChatGPT 🙂

    stephunique
    Participant

    Hi,
    I am using the “BuddyPress Messaging Control” plugin (available here) and ran into some bugs with it. The creator has not responded so I thought I should ask here.

    Issue 1:
    This plugin is used to restrict who (based on user roles) can send how many messages to whom and within what time period, eg free user roles can send 10 messages a week or only reply to messages sent to them, but paid users can send unlimited messages to anyone).

    When I tested this plugin with the latest Buddypress and WordPress version and BuddyX theme, when you go to send a message, and your account is restricted, there is a message that says “Your messaging is capped, you can send a further”. and “Your messaging is set to Reply Only, you can only message users who have previously sent you a message, in addition you are only able to send another”. It doesn’t show the quota, and I would like for it to show it, because this just looks silly.

    Issue 2 and 3:
    In the Buddyboss platform (Buddyboss says anything made for Buddypress is compatible with Buddyboss, but it doesn’t actually seem so) the messages can be sent by simply pressing enter, there is even a message that says “Enter to Send Shift+Enter to add a new line”. But, pressing the “enter” key doesn’t visibly do anything, ie the message that you typed still stays in the text box, it doesn’t move to the sent messages box, so it is not obvious that a message was sent. Then the user will repeatedly press “enter” until they run out of their alloted messages. Then a message appears that says “There was a problem sending your message.”

    The first of this issue is obviously the message not “sending” upon pressing “enter”.
    The second of this issue is that the message itself is vague and not specific: It should say “You have used up your message quota for this period.”

    I am wondering if anyone can help with fixing these things.
    Thank you in advance.

    #335667
    wpuser
    Participant

    You’ve got mail! 🙂 thanks in advance.

    Yes I am using BuddyX PRo (but again, when switching to any standard theme – the issue is the same)
    And BuddyPress (not BuddyBoss)

    #335666
    GyziieDK
    Participant

    And you use the BuddyX theme with BuddyPress and not the BuddyBoss Platform right?

    You can send me an email here: support@spiritualskill.com

    This reply will be deleted once you reach out, in order to prevent spam mails in the future. 🙂

    thinlizzie
    Participant

    Re. avatar size, not sure, you can try putting a span around your shortcode, give it a class and with CSS try to force the avatar size.

    Or you can add a class into the fetch_avatar array and try that way.

    See: https://www.buddyboss.com/resources/reference/functions/bp_core_fetch_avatar/

    #335544
    Marco Giustini
    Participant

    https://github.com/dcavins/hierarchical-groups-for-bp

    Unfortunately, this very important plugin is no longer updated with the latest version of BP and crashes the system. It would be helpful if it was updated and if possible integrated directly into the BP core, as Buddyboss has already done.

    #335435
    GyziieDK
    Participant

    Hello @varunkamani

    I already gave you a few options to choose from, so in the end it’s up to you.

    1. Ignore error and keep plugin
    Keep the plugin and accept the fact that it comes with some issues and risks.
    The risk itself is pretty low when it comes to the XSS since this is pretty common.
    Like mentioned before, old and unsupported plugins do come with some risk.

    2. Find a different plugin
    Find a different plugin that is updated that can provide you with the features you need/want.
    You can search on both WordPress.Org or other sites like Google, CodeCanyon etc.

    https://wordpress.org/plugins/

    3. Use a third party security plugin
    Download and install a third party security plugin that can help prevent the XSS attacks on your site. This could be either free or paid/premium depending on your budget and needs.

    4. Get a developer to help you update current plugin
    If you insist on keeping the BuddyPress Global Search and you want it updated to fix its current issues, you’d need to pay a developer to help you update the plugin itself. This might not be the best solution long term, and I would also assume BuddyBoss themselves would update this if they felt it was necessary. The fact that they talked about updating it for the past 3 years and now left it abandoned tells me that it’s not a priority for them.

    From a quick search on the forums, this topic has been up several times before for the past many years, so don’t expect an easy or “free” solution for this.

    Hope it helps! 🙂

    #335312

    In reply to: disable rss

    I’m no longer using BuddyPRess or bbPress. I switched to BuddyBoss and gave up on trying to get BuddyPress to work the way I wanted.

    #335205

    In reply to: Critical Error

    Upen Singh
    Participant

    I think you have used BuddyPress and BuddyBoss themes. You can try deactivating the BuddyBoss theme temporarily to see if the issue persists, which will help determine whether the problem is related to the theme or BuddyPress itself.

    stephunique
    Participant

    @mike80222

    We’re talking about Profile -> Messages -> Compose, right?

    Yes, this is exactly what I am talking about.


    @emaralive

    Thank you for this suggestion and interesting insight. I am not a developer so I have no idea how to write a script that does this, but I found this code here. Would you/does anyone know if this is the right thing to use, and if so, how I can modify it to apply only to the “compose a message” page? And I am guessing I need to put it in the bp-custom.php file?

    Thank you

    #334617

    In reply to: BuddyPress 14.0.0

    ghinamt
    Participant

    Thank you, but after updating the plugin to the lattes version, a notification message is stacked at the top of my WordPress admin dashbored as follows:

    (For BuddyPress Multilingual to work you must enable WPML together with BuddyPress or BuddyBoss.)

    —————————————-

    even the WPML and BuddyPres are already active and working

    #334614

    In reply to: BuddyPress 14.0.0

    oumz99
    Participant

    Buddyboss got sold to awesome motive. More competition for buddypress. We are currently at a declining rate sitting at 2016 levels.

Viewing 25 results - 1 through 25 (of 570 total)
Skip to toolbar