bp_document_move_folder_to_folder( $folder_id, $destination_folder_id, $group_id )
This function will move folder to another destination folder id.
Description
Parameters
- $folder_id
-
(Required)
- $destination_folder_id
-
(Required)
- $group_id
-
(Required)
Return
(bool)
Source
File: bp-document/bp-document-functions.php
function bp_document_move_folder_to_folder( $folder_id, $destination_folder_id, $group_id = 0 ) { global $wpdb, $bp; if ( '' === $folder_id || '' === $destination_folder_id ) { return false; } if ( (int) $folder_id > 0 ) { $has_access = bp_folder_user_can_edit( $folder_id ); if ( ! $has_access ) { return false; } } if ( (int) $destination_folder_id > 0 ) { $has_destination_access = bp_folder_user_can_edit( $destination_folder_id ); if ( ! $has_destination_access ) { return false; } } if ( ! $group_id ) { $get_folder = new BP_Document_Folder( $folder_id ); if ( $get_folder->group_id > 0 ) { $group_id = $get_folder->group_id; } } $destination_privacy = 'loggedin'; if ( $group_id > 0 ) { $destination_privacy = 'grouponly'; } elseif ( $destination_folder_id > 0 ) { $destination_folder = BP_Document_Folder::get_folder_data( array( $destination_folder_id ) ); $destination_privacy = $destination_folder[0]->privacy; // Update modify date for destination folder. $destination_folder_update = new BP_Document_Folder( $destination_folder_id ); $destination_folder_update->date_modified = bp_core_current_time(); $destination_folder_update->save(); } // Update main parent folder. $folder = new BP_Document_Folder( $folder_id ); $folder->privacy = $destination_privacy; $folder->parent = $destination_folder_id; $folder->date_modified = bp_core_current_time(); $folder->save(); // Get all the documents of main folder. $document_ids = bp_document_get_folder_document_ids( $folder_id ); if ( ! empty( $document_ids ) ) { foreach ( $document_ids as $id ) { // Update privacy of the document. $query_update_document = $wpdb->prepare( "UPDATE {$bp->document->table_name} SET privacy = %s WHERE id = %d", $destination_privacy, $id ); // phpcs:ignore WordPress.DB.PreparedSQLPlaceholders.UnfinishedPrepare $query = $wpdb->query( $query_update_document ); // Update document activity privacy. $document = new BP_Document( $id ); if ( ! empty( $document ) && ! empty( $document->attachment_id ) ) { $post_attachment = $document->attachment_id; $activity_id = get_post_meta( $post_attachment, 'bp_document_parent_activity_id', true ); if ( ! empty( $activity_id ) && bp_is_active( 'activity' ) ) { $activity = new BP_Activity_Activity( (int) $activity_id ); if ( bp_activity_user_can_delete( $activity ) ) { $activity->privacy = $destination_privacy; $activity->save(); } } } } } // Update privacy for all child folders. $get_children = bp_document_get_folder_children( $folder_id ); foreach ( $get_children as $child ) { $query_update_child = $wpdb->prepare( "UPDATE {$bp->document->table_name_folder} SET privacy = %s WHERE id = %d", $destination_privacy, $child ); // phpcs:ignore WordPress.DB.PreparedSQLPlaceholders.UnfinishedPrepare $query = $wpdb->query( $query_update_child ); // Get all the documents of particular folder. $document_ids = bp_document_get_folder_document_ids( $child ); if ( ! empty( $document_ids ) ) { foreach ( $document_ids as $id ) { // Update privacy of the document. $query_update_document = $wpdb->prepare( "UPDATE {$bp->document->table_name} SET privacy = %s WHERE id = %d", $destination_privacy, $id ); // phpcs:ignore WordPress.DB.PreparedSQLPlaceholders.UnfinishedPrepare $query = $wpdb->query( $query_update_document ); // Update document activity privacy. $document = new BP_Document( $id ); if ( ! empty( $document ) && ! empty( $document->attachment_id ) ) { $post_attachment = $document->attachment_id; $activity_id = get_post_meta( $post_attachment, 'bp_document_parent_activity_id', true ); if ( ! empty( $activity_id ) && bp_is_active( 'activity' ) ) { $activity = new BP_Activity_Activity( (int) $activity_id ); if ( bp_activity_user_can_delete( $activity ) ) { $activity->privacy = $destination_privacy; $activity->save(); } } } } } } return true; }
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.