bp_media_user_can_delete( int|BP_Media $media = false )
Determine if the current user can delete an media item.
Description
Parameters
- $media
-
(Optional) BP_Media object or ID of the media
Default value: false
Return
(bool) True if can delete, false otherwise.
Source
File: bp-media/bp-media-template.php
function bp_media_user_can_delete( $media = false ) {
// Assume the user cannot delete the media item.
$can_delete = false;
if ( empty( $media ) ) {
return $can_delete;
}
if ( ! is_object( $media ) ) {
$media = new BP_Media( $media );
}
if ( empty( $media ) ) {
return $can_delete;
}
// Only logged in users can delete media.
if ( is_user_logged_in() ) {
// Community moderators can always delete media (at least for now).
if ( bp_current_user_can( 'bp_moderate' ) ) {
$can_delete = true;
}
// Users are allowed to delete their own media.
if ( isset( $media->user_id ) && ( $media->user_id === bp_loggedin_user_id() ) ) {
$can_delete = true;
}
if ( bp_is_active( 'groups' ) && $media->group_id > 0 ) {
$manage = groups_can_user_manage_document( bp_loggedin_user_id(), $media->group_id );
$status = bp_group_get_media_status( $media->group_id );
$is_admin = groups_is_user_admin( bp_loggedin_user_id(), $media->group_id );
$is_mod = groups_is_user_mod( bp_loggedin_user_id(), $media->group_id );
if ( $manage ) {
if ( $media->user_id === bp_loggedin_user_id() ) {
$can_delete = true;
} elseif ( 'members' === $status && ( $is_mod || $is_admin ) ) {
$can_delete = true;
} elseif ( 'mods' == $status && ( $is_mod || $is_admin ) ) {
$can_delete = true;
} elseif ( 'admins' == $status && $is_admin ) {
$can_delete = true;
}
}
}
}
/**
* Filters whether the current user can delete an media item.
*
* @since BuddyBoss 1.2.0
*
* @param bool $can_delete Whether the user can delete the item.
* @param object $media Current media item object.
*/
return (bool) apply_filters( 'bp_media_user_can_delete', $can_delete, $media );
}
Changelog
| Version | Description |
|---|---|
| BuddyBoss 1.2.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.