bp_nouveau_ajax_media_save()
Save media
Description
Return
(string) HTML
Source
File: bp-templates/bp-nouveau/includes/media/ajax.php
function bp_nouveau_ajax_media_save() { $response = array( 'feedback' => sprintf( '<div class="bp-feedback error bp-ajax-message"><span class="bp-icon" aria-hidden="true"></span><p>%s</p></div>', esc_html__( 'There was a problem performing this action. Please try again.', 'buddyboss' ) ), ); // Bail if not a POST action. if ( ! bp_is_post_request() ) { wp_send_json_error( $response ); } if ( empty( $_POST['_wpnonce'] ) ) { wp_send_json_error( $response ); } // Use default nonce $nonce = $_POST['_wpnonce']; $check = 'bp_nouveau_media'; // Nonce check! if ( empty( $nonce ) || ! wp_verify_nonce( $nonce, $check ) ) { wp_send_json_error( $response ); } if ( empty( $_POST['medias'] ) ) { $response['feedback'] = sprintf( '<div class="bp-feedback error"><span class="bp-icon" aria-hidden="true"></span><p>%s</p></div>', esc_html__( 'Please upload media before saving.', 'buddyboss' ) ); wp_send_json_error( $response ); } // if ( empty( $_POST['content'] ) ) { // $response['feedback'] = sprintf( // '<div class="bp-feedback error">%s</div>', // esc_html__( 'Please write something about media.', 'buddyboss' ) // ); // // wp_send_json_error( $response ); // } $main_activity_id = false; // make an activity if ( bp_is_active( 'activity' ) ) { /** * Filters the content provided in the activity input field. * * @since BuddyPress 1.2.0 * * @param string $value Activity message being posted. */ $content = apply_filters( 'bp_activity_post_update_content', $_POST['content'] ); $main_activity_id = bp_activity_post_update( array( 'content' => $content ) ); } $album_privacy = 'public'; $medias = $_POST['medias']; $media_ids = array(); // save media foreach( $medias as $media ) { $activity_id = false; // make an activity for the media if ( bp_is_active( 'activity' ) ) { $activity_id = bp_activity_post_update( array( 'hide_sitewide' => true, 'privacy' => 'media' ) ); if ( $activity_id ) { // update activity meta bp_activity_update_meta( $activity_id, 'bp_media_activity', '1' ); } } if ( ! empty( $media['album_id'] ) ) { $albums = bp_album_get_specific( array( 'album_ids' => array( $media['album_id'] ) ) ); if ( ! empty( $albums['albums'] ) ) { $album = array_pop( $albums['albums'] ); $album_privacy = $album->privacy; } } $media_id = bp_media_add( array( 'attachment_id' => $media['id'], 'title' => $media['name'], 'activity_id' => $activity_id, 'album_id' => $media['album_id'], 'group_id' => $media['group_id'], 'privacy' => $album_privacy, 'error_type' => 'wp_error' ) ); if ( is_wp_error( $media_id ) ) { $response['feedback'] = sprintf( '<div class="bp-feedback error"><span class="bp-icon" aria-hidden="true"></span><p>%s</p></div>', esc_html__( 'There was a problem when trying to add the media.', 'buddyboss' ) ); wp_send_json_error( $response ); } //save media is saved in attahchment update_post_meta( $media['id'], 'bp_media_saved', true ); //save media meta for activity if ( ! empty( $main_activity_id ) ) { update_post_meta( $media['id'], 'bp_media_parent_activity_id', $main_activity_id ); update_post_meta( $media['id'], 'bp_media_activity_id', $activity_id ); } $media_ids[] = $media_id; } $media = ''; if ( ! empty( $media_ids ) ) { $media_ids = implode( ',', $media_ids ); //save media meta for activity if ( ! empty( $main_activity_id ) ) { bp_activity_update_meta( $main_activity_id, 'bp_media_ids', $media_ids ); $main_activity = new BP_Activity_Activity( $main_activity_id ); if ( ! empty( $main_activity ) ) { $main_activity->privacy = $album_privacy; $main_activity->save(); } } ob_start(); if ( bp_has_media( array( 'include' => $media_ids ) ) ) { while ( bp_media() ) { bp_the_media(); bp_get_template_part( 'media/entry' ); } } $media = ob_get_contents(); ob_end_clean(); } wp_send_json_success( array( 'media' => $media, ) ); }
Changelog
Version | Description |
---|---|
BuddyBoss 1.0.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.