bp_activity_add( array|string $args = '' )

Add an activity item.

Description

Parameters

$args

(Optional) An array of arguments.

  • 'id'
    (int|bool) Pass an activity ID to update an existing item, or false to create a new item. Default: false.
  • 'action'
    (string) Optional. The activity action/description, typically something like "Joe posted an update". Values passed to this param will be stored in the database and used as a fallback for when the activity item's format_callback cannot be found (eg, when the component is disabled). As long as you have registered a format_callback for your $type, it is unnecessary to include this argument - BP will generate it automatically. See bp_activity_set_action().
  • 'content'
    (string) Optional. The content of the activity item.
  • 'component'
    (string) The unique name of the component associated with the activity item - 'groups', 'profile', etc.
  • 'type'
    (string) The specific activity type, used for directory filtering. 'new_blog_post', 'activity_update', etc.
  • 'primary_link'
    (string) Optional. The URL for this item, as used in RSS feeds. Defaults to the URL for this activity item's permalink page.
  • 'user_id'
    (int|bool) Optional. The ID of the user associated with the activity item. May be set to false or 0 if the item is not related to any user. Default: the ID of the currently logged-in user.
  • 'item_id'
    (int) Optional. The ID of the associated item.
  • 'secondary_item_id'
    (int) Optional. The ID of a secondary associated item.
  • 'date_recorded'
    (string) Optional. The GMT time, in Y-m-d h:i:s format, when the item was recorded. Defaults to the current time.
  • 'hide_sitewide'
    (bool) Should the item be hidden on sitewide streams? Default: false.
  • 'is_spam'
    (bool) Should the item be marked as spam? Default: false.
  • 'privacy'
    (string) Privacy of the activity Default: public.
  • 'error_type'
    (string) Optional. Error type. Either 'bool' or 'wp_error'. Default: 'bool'.

Default value: ''

Return

(WP_Error|bool|int) The ID of the activity on success. False on error.

Source

File: bp-activity/bp-activity-functions.php

2160
2161
2162
2163
2164
2165
2166
2167
2168
2169
2170
2171
2172
2173
2174
2175
2176
2177
2178
2179
2180
2181
2182
2183
2184
2185
2186
2187
2188
2189
2190
2191
2192
2193
2194
2195
2196
2197
2198
2199
2200
2201
2202
2203
2204
2205
2206
2207
2208
2209
2210
2211
2212
2213
2214
2215
2216
2217
2218
2219
2220
2221
2222
2223
2224
2225
2226
2227
2228
2229
2230
2231
2232
2233
2234
function bp_activity_add( $args = '' ) {
 
    $r = bp_parse_args( $args, array(
        'id'                => false,                  // Pass an existing activity ID to update an existing entry.
        'action'            => '',                     // The activity action - e.g. "Jon Doe posted an update"
        'content'           => '',                     // Optional: The content of the activity item e.g. "BuddyPress is awesome guys!"
        'component'         => false,                  // The name/ID of the component e.g. groups, profile, mycomponent.
        'type'              => false,                  // The activity type e.g. activity_update, profile_updated.
        'primary_link'      => '',                     // Optional: The primary URL for this item in RSS feeds (defaults to activity permalink).
        'user_id'           => bp_loggedin_user_id(),  // Optional: The user to record the activity for, can be false if this activity is not for a user.
        'item_id'           => false,                  // Optional: The ID of the specific item being recorded, e.g. a blog_id.
        'secondary_item_id' => false,                  // Optional: A second ID used to further filter e.g. a comment_id.
        'recorded_time'     => bp_core_current_time(), // The GMT time that this activity was recorded.
        'hide_sitewide'     => false,                  // Should this be hidden on the sitewide activity feed?
        'is_spam'           => false,                  // Is this activity item to be marked as spam?
        'privacy'           => 'public',               // privacy of the activity
        'error_type'        => 'bool'
    ), 'activity_add' );
 
    // Make sure we are backwards compatible.
    if ( empty( $r['component'] ) && !empty( $r['component_name'] ) ) {
        $r['component'] = $r['component_name'];
    }
 
    if ( empty( $r['type'] ) && !empty( $r['component_action'] ) ) {
        $r['type'] = $r['component_action'];
    }
 
    // Setup activity to be added.
    $activity                    = new BP_Activity_Activity( $r['id'] );
    $activity->user_id           = $r['user_id'];
    $activity->component         = $r['component'];
    $activity->type              = $r['type'];
    $activity->content           = $r['content'];
    $activity->primary_link      = $r['primary_link'];
    $activity->item_id           = $r['item_id'];
    $activity->secondary_item_id = $r['secondary_item_id'];
    $activity->date_recorded     = $r['recorded_time'];
    $activity->hide_sitewide     = $r['hide_sitewide'];
    $activity->is_spam           = $r['is_spam'];
    $activity->privacy           = $r['privacy'];
    $activity->error_type        = $r['error_type'];
    $activity->action            = ! empty( $r['action'] )
                        ? $r['action']
                        : bp_activity_generate_action_string( $activity );
 
    $save = $activity->save();
 
    if ( 'wp_error' === $r['error_type'] && is_wp_error( $save ) ) {
        return $save;
    } elseif ('bool' === $r['error_type'] && false === $save ) {
        return false;
    }
 
    // If this is an activity comment, rebuild the tree.
    if ( 'activity_comment' === $activity->type ) {
        // Also clear the comment cache for the parent activity ID.
        wp_cache_delete( $activity->item_id, 'bp_activity_comments' );
 
        BP_Activity_Activity::rebuild_activity_comment_tree( $activity->item_id );
    }
 
    wp_cache_delete( 'bp_activity_sitewide_front', 'bp' );
 
    /**
     * Fires at the end of the execution of adding a new activity item, before returning the new activity item ID.
     *
     * @since BuddyPress 1.1.0
     *
     * @param array $r Array of parsed arguments for the activity item being added.
     */
    do_action( 'bp_activity_add', $r );
 
    return $activity->id;
}

Changelog

Changelog
Version Description
BuddyPress 2.6.0 Added 'error_type' parameter to $args. BuddyPress 2.6.0 Added 'error_type' parameter to $args.
BuddyPress 1.1.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.