Skip to:
Content
Pages
Categories
Search
Top
Bottom

Search Results for 'buddypress'

Viewing 25 results - 1 through 25 (of 69,093 total)
  • Author
    Search Results
  • #339070
    Steve
    Participant

    Hello,

    I’m unable to update the profile picture on a subscriber account.
    When I attempt to upload an image via the BuddyPress profile page, I get the following message:
    ‘An error occurred. Please try again later.’

    No problem with the admin account.

    This is my site:

    Courses


    If you wanted to see this behaviour please create an account by clicking the login link on the menu.

    Once logged in go to:
    https://elearning.netmonics.com/members/admin/profile/
    Then try to add a profile picture.

    WordPress version is 6.9.1.
    Issue still occurs with the twenty twenty five theme installed.

    Any suggestions gratefully received.

    Steve

    #339061
    juliasides
    Participant

    Hi ‘
    I am using BuddyPress ( BP classic) with Media Press . The Galleries component appears in the menu but it not properly linked to a page , so users can not upload or view media correctly and privacy settings dont wprk as expected . Could ypu please advise how correctly link the Galleries component to a page and set up so it functions fully ?
    Thank You

    #339057
    Renato Alves
    Moderator

    Other than the user handbook, already mentioned, trying BuddyPress out is THE BEST way to learn it, IMO. BuddyPress is a complex software with varying features, which allows for multiple use cases.

    #339056
    indigetal
    Participant
    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.

    emaralive
    Moderator

    For reference, see Trac ticket #9327.

    emaralive
    Moderator

    For reference, see Trac ticket #9328.

    emaralive
    Moderator

    You should submit a ticket with the type set to “enhancement”, with the details you have expressed here, such that your proposal can be considered and dispatched accordingly.

    Afterwards, if you decide to submit a PR, the ticket can be referenced which will attach the PR to the ticket.

    emaralive
    Moderator

    You should submit a ticket with the type set to “enhancement”, with the details you have expressed here, such that your proposal can be considered and dispatched accordingly.

    Afterwards, if you decide to submit a PR, the ticket can be referenced which will attach the PR to the ticket.

    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.

    emaralive
    Moderator

    By default, BuddyPress utilizes the “rewrites” URL parser which creates an equivalent of “pages” which are located from the dashboard @ Settings -> Buddypress -> URLs.

    If you require “pages” then you will have to install and activate the BP Classic add-on/plugin of which BuddyPress associated pages will show within WordPress “Pages”.

    As for wpForo, they claim integration with BuddyPress, so you should ask your integration questions within their wpForum Integration forum.

    #339023
    johnackerman
    Participant

    Hi everyone,

    I’m running a BuddyPress-powered site and noticing the activity stream getting slow as user activity grows, even with caching enabled. It starts to feel heavy once groups, friendships, and posts increase.

    How are others keeping BuddyPress fast and scalable while using the core social features?

    Appreciate any insights.

    #339021
    Steve
    Participant

    Hello,

    Can I please ask what’s the best way to learn about BuddyPress.

    I have looked for tutorials on Youtube but the ones I found are 7 or 8 years out of date. So difficult to get an overview.

    I will install the BuddyPress plugin and try and figure things out from scratch if I have to but was just hoping for some background first.

    Any suggestions greatly appreciated.

    Best Regards,

    Steve

    P.S. Above the form that I’m using to make this request it says to include the wordpress, buddypress versions. I haven’t installed anything yet but they will be the latest as I’m starting from scratch.

    emaralive
    Moderator

    Wordfence posted this alert on January 22, 2026, which can be found here. Similarly, Patchstack had reported the alert on January 23, 2026, which can be found here.

    In either case, both sites indicate that this was patched in BuddyPress version 14.3.4, which the release was announced in March of 2025, approximately 10 months ago. See the following:

    Additionally, in the future, you may want to consider refraining from double posting.

    #338980
    emaralive
    Moderator

    @divinel,

    There may be some confusion as to what should transpire here. I believe what was expected was that you would share the data from an “error log” as opposed to the generic WordPress (WP) error message of “There has been a critical error on this website.”

    The link that is included in the generic WP error message should have eventually led you to information regarding, to paraphrase, “How to Troubleshoot” for example, this situation may be related to a “plugin conflict” whereby steps could be taken to isolate the conflict, see A Plugin is causing compatibility issues. Have you tried deactivating plugins other than BuddyPress in an attempt to determine whether a “plugin conflict” exists?

    Furthermore, there is information about Debugging in WordPress, this information will help you configure WP such that you could provide/share error data from an error log, which is what the other moderator was asking you to share.

    Note: there are plugins that can facilitate the configuration for debugging, that information is found near the bottom of the “Debugging in WordPress” page.

    #338977
    emaralive
    Moderator

    For reference, the topic owner (TO) has opened trac ticket 9325

    #338974
    emaralive
    Moderator

    What is the model of the iPhone and what is the version of the Safari browser that you are using?

    Better yet, a ticket might be more appropriate for this situation, use the following link to submit a ticket:

    https://buddypress.trac.wordpress.org/newticket

    #338972
    sunil1988lits
    Participant

    The cover image upload button is not working due to a JavaScript error, which is why the upload popup does not open.
    This issue is not caused by the theme or any custom code.
    It appears to be a BuddyPress plugin–related issue.

    Please test this on Safari browsers and inspect the JavaScript console for errors.

    #338968
    emaralive
    Moderator

    AFAIK, the ability to upload a cover image with the Twenty Twenty-Five theme is the same as the Twenty Eleven theme, which was posted here.

    #338967
    divinel
    Participant

    Hi!

    Do you have any updates on helping me with the BuddyPress plugin, as it has been a week, and the plugin still doesn’t work for me?

    Divine

    emaralive
    Moderator

    This appears to be a duplicate topic thus closing this topic.

    See User Profile Cover Image Upload Not Working on iPhone.

    #338949
    emaralive
    Moderator

    I was able to locate someone with an iPhone and I wasn’t able to duplicate the issue you described:

    With:

    • WordPress 6.9
    • BuddyPress 14.4.0
    • Twenty Eleven theme
    • iPhone 16 Pro
    • ios 26.2 <- Safari browser

    Steps:
    Pressing the “Select your file” button produces the following selections:

    • Photo Library
    • Take Photo or Video
    • Choose file

    Selected and uploaded a photo from the “Photo Library” which uploaded successfully, i.e., “Your new cover image was uploaded successfully”.

    #338944
    emaralive
    Moderator

    You appear to be double posting, see User Profile Cover Image not uploading in the Iphone Safari Browser.

    The difference is the other topic specifies the Safari browser. Is this isolated to the Safari browser or do other installable browsers have this same issue as well? Additionally, what theme is being used on the website?

    Just so you know, I don’t have an Iphone, so I’ll have to check and see if someone on the team has one and can duplicate this issue.

    #338940
    emaralive
    Moderator

    The standard message for BuddyPress (BP) is “Sorry, that username already exists!” which appears to differ from what you’ve indicated, perhaps you elaborate as to why there is a difference. Furthermore, additional info would be helpful, such as:

    • Is this is “single site” or “multisite” installation?
    • Is this the “standard” or “membership requests” registration process?
    • Can the assumption be made that BP 14.4.0 is currently installed?
Viewing 25 results - 1 through 25 (of 69,093 total)
Skip to toolbar