function bp_media_entry_delete() { global $bp; if (bp_loggedin_user_id() != bp_displayed_user_id()) { bp_core_no_access(array('message' => __('You do not have access to this page.', 'buddypress'), 'root' => bp_displayed_user_domain(), 'redirect' => false)); exit; } if (!isset($bp->action_variables[1])) { @setcookie('bp-message', 'The requested url does not exist', time() + 60 * 60 * 24, COOKIEPATH); @setcookie('bp-message-type', 'error', time() + 60 * 60 * 24, COOKIEPATH); wp_redirect(trailingslashit(bp_displayed_user_domain() . BP_MEDIA_IMAGES_SLUG)); exit; } global $bp_media_current_entry; try { $bp_media_current_entry = new BP_Media_Host_Wordpress($bp->action_variables[1]); } catch (Exception $e) { /* Send the values to the cookie for page reload display */ @setcookie('bp-message', $e->getMessage(), time() + 60 * 60 * 24, COOKIEPATH); @setcookie('bp-message-type', 'error', time() + 60 * 60 * 24, COOKIEPATH); wp_redirect(trailingslashit(bp_displayed_user_domain() . BP_MEDIA_IMAGES_SLUG)); exit; } $post_id = $bp_media_current_entry->get_id(); $activity_id = get_post_meta($post_id, 'bp_media_child_activity', true); bp_activity_delete_by_activity_id($activity_id); $bp_media_current_entry->delete_media(); @setcookie('bp-message', __('Media deleted successfully', 'bp-media'), time() + 60 * 60 * 24, COOKIEPATH); @setcookie('bp-message-type', 'success', time() + 60 * 60 * 24, COOKIEPATH); wp_redirect(trailingslashit(bp_displayed_user_domain() . BP_MEDIA_IMAGES_SLUG)); exit; }
function bp_media_delete_activity_handler_old($args) { global $bp_media_count, $wpdb; if (!array_key_exists('id', $args)) { return; } $activity_id = $args['id']; $query = "SELECT post_id from {$wpdb->postmeta} WHERE meta_key='bp_media_child_activity' AND meta_value={$activity_id}"; $result = $wpdb->get_results($query); if (!(is_array($result) && count($result) == 1)) { return; } $post_id = $result[0]->post_id; $media = new BP_Media_Host_Wordpress($post_id); $media->delete_media(); }
function bp_media_delete_activity_handler($args) { remove_action('bp_media_before_delete_media', 'bp_media_delete_media_handler'); global $bp_media_count, $wpdb; if (!array_key_exists('id', $args)) { return; } $activity_id = $args['id']; $query = "SELECT post_id from {$wpdb->postmeta} WHERE meta_key='bp_media_child_activity' AND meta_value={$activity_id}"; $result = $wpdb->get_results($query); if (!(is_array($result) && count($result) == 1)) { return; } $post_id = $result[0]->post_id; try { $post = get_post($post_id); if (!isset($post->post_type)) { return false; } switch ($post->post_type) { case 'attachment': $media = new BP_Media_Host_Wordpress($post_id); $media->delete_media(); break; case 'bp_media_album': $album = new BP_Media_Album($post_id); $album->delete_album(); break; default: wp_delete_post($post_id); } } catch (Exception $e) { error_log('Media tried to delete was already deleted'); } }