bp_activity_add( array|string $args = '' )

Add an activity item.


Parameters Parameters

$args

(array|string) (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
  • '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.
  • 'error_type'
    (string) Optional. Error type. Either 'bool' or 'wp_error'. Default: 'bool'.
  • Default value: ''


    Top ↑

    Return Return

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


    Source Source

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

    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 stream?
    		'is_spam'           => false,                  // Is this activity item to be marked as spam?
    		'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->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 1.1.0
    	 * @since 4.0.0 Added the `$activity_id` parameter.
    	 *
    	 * @param array $r           Array of parsed arguments for the activity item being added.
    	 * @param int   $activity_id The id of the activity item being added.
    	 */
    	do_action( 'bp_activity_add', $r, $activity->id );
    
    	return $activity->id;
    }
    


    Top ↑

    Changelog Changelog

    Changelog
    Version Description
    2.6.0 Added 'error_type' parameter to $args.
    1.1.0 Introduced.

    Top ↑

    User Contributed Notes User Contributed Notes

    You must log in before being able to contribute a note or feedback.