bp_document_update_privacy( int $document_id, string $privacy = '', string $type = 'folder' )
Update document privacy with nested level.
Description
Parameters
- $document_id
-
(Required) Document/Folder ID.
- $privacy
-
(Optional) Privacy term to update.
Default value: ''
- $type
-
(Optional) Current type for the document.
Default value: 'folder'
Return
(bool)
Source
File: bp-document/bp-document-functions.php
function bp_document_update_privacy( $document_id = 0, $privacy = '', $type = 'folder' ) { global $wpdb, $bp; if ( '' === $document_id || '' === $privacy ) { return false; } if ( ! is_user_logged_in() ) { return false; } if ( 'folder' === $type ) { if ( (int) $document_id > 0 ) { $has_access = bp_folder_user_can_edit( $document_id ); if ( ! $has_access ) { return false; } } $q = $wpdb->prepare( "UPDATE {$bp->document->table_name_folder} SET privacy = %s, date_modified = %s WHERE id = %d", $privacy, bp_core_current_time(), $document_id ); // phpcs:ignore WordPress.DB.PreparedSQLPlaceholders.UnfinishedPrepare $wpdb->query( $q ); // Get main folder's child folders. $get_children = bp_document_get_folder_children( $document_id ); if ( ! empty( $get_children ) ) { foreach ( $get_children as $child ) { $query_child_privacy = $wpdb->prepare( "UPDATE {$bp->document->table_name_folder} SET privacy = %s WHERE id = %d", $privacy, $child ); // phpcs:ignore WordPress.DB.PreparedSQLPlaceholders.UnfinishedPrepare $wpdb->query( $query_child_privacy ); // Get current folder's documents. $child_document_ids = bp_document_get_folder_document_ids( $child ); if ( ! empty( $child_document_ids ) ) { foreach ( $child_document_ids as $child_document_id ) { $child_document_query = $wpdb->prepare( "UPDATE {$bp->document->table_name} SET privacy = %s WHERE id = %d", $privacy, $child_document_id ); $wpdb->query( $child_document_query ); $document = new BP_Document( $child_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 = $privacy; $activity->save(); } } } } } } } // Get main folder's documents. $get_document_ids = bp_document_get_folder_document_ids( $document_id ); if ( ! empty( $get_document_ids ) ) { foreach ( $get_document_ids as $document_id ) { $document_query = $wpdb->prepare( "UPDATE {$bp->document->table_name} SET privacy = %s WHERE id = %d", $privacy, $document_id ); $wpdb->query( $document_query ); $document = new BP_Document( $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 = $privacy; $activity->save(); } } } } } } else { if ( (int) $document_id > 0 ) { $has_access = bp_document_user_can_edit( $document_id ); if ( ! $has_access ) { return false; } } $document_query = $wpdb->prepare( "UPDATE {$bp->document->table_name} SET privacy = %s, date_modified = %s WHERE id = %d", $privacy, bp_core_current_time(), $document_id ); $wpdb->query( $document_query ); $document = new BP_Document( $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 ( bp_is_active( 'activity' ) && ! empty( $activity_id ) ) { $activity = new BP_Activity_Activity( (int) $activity_id ); if ( bp_activity_user_can_delete( $activity ) ) { $activity->privacy = $privacy; $activity->save(); } } } } }
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.