bp_document_add( array|string $args = '' )
Add an document item.
Description
Parameters
- $args
-
(Optional) An array of arguments
Default value: ''
Return
(WP_Error|bool|int) The ID of the document on success. False on error.
Source
File: bp-document/bp-document-functions.php
function bp_document_add( $args = '' ) {
$r = bp_parse_args(
$args,
array(
'id' => false, // Pass an existing document ID to update an existing entry.
'blog_id' => get_current_blog_id(), // Blog ID.
'attachment_id' => false, // attachment id.
'user_id' => bp_loggedin_user_id(), // user_id of the uploader.
'title' => '', // title of document being added.
'folder_id' => false, // Optional: ID of the folder.
'group_id' => false, // Optional: ID of the group.
'activity_id' => false, // The ID of activity.
'privacy' => 'public', // Optional: privacy of the document e.g. public.
'menu_order' => 0, // Optional: Menu order.
'date_created' => bp_core_current_time(), // The GMT time that this document was recorded.
'date_modified' => bp_core_current_time(), // The GMT time that this document was modified.
'error_type' => 'bool',
),
'document_add'
);
// Setup document to be added.
$document = new BP_Document( $r['id'] );
$document->blog_id = $r['blog_id'];
$document->attachment_id = $r['attachment_id'];
$document->user_id = (int) $r['user_id'];
$document->title = $r['title'];
$document->folder_id = (int) $r['folder_id'];
$document->group_id = (int) $r['group_id'];
$document->activity_id = (int) $r['activity_id'];
$document->privacy = $r['privacy'];
$document->menu_order = $r['menu_order'];
$document->date_created = $r['date_created'];
$document->date_modified = $r['date_modified'];
$document->error_type = $r['error_type'];
// groups document always have privacy to `grouponly`.
if ( ! empty( $document->privacy ) && ( in_array( $document->privacy, array( 'forums', 'message' ), true ) ) ) {
$document->privacy = $r['privacy'];
} elseif ( ! empty( $document->group_id ) ) {
$document->privacy = 'grouponly';
} elseif ( ! empty( $document->folder_id ) ) {
$folder = new BP_Document_Folder( $document->folder_id );
if ( ! empty( $folder ) ) {
$document->privacy = $folder->privacy;
}
}
if ( isset( $_POST ) && isset( $_POST['action'] ) && 'groups_get_group_members_send_message' === $_POST['action'] ) {
$document->privacy = 'message';
}
// save document.
$save = $document->save();
if ( 'wp_error' === $r['error_type'] && is_wp_error( $save ) ) {
return $save;
} elseif ( 'bool' === $r['error_type'] && false === $save ) {
return false;
}
// document is saved for attachment.
update_post_meta( $document->attachment_id, 'bp_document_saved', true );
/**
* Fires at the end of the execution of adding a new document item, before returning the new document item ID.
*
* @param object $document document object.
*
* @since BuddyBoss 1.4.0
*/
do_action( 'bp_document_add', $document );
return $document->id;
}
Changelog
| Version | Description |
|---|---|
| BuddyBoss 1.4.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.