bp_nouveau_ajax_media_album_save()
Save album
Description
Return
(string) HTML
Source
File: bp-templates/bp-nouveau/includes/media/ajax.php
function bp_nouveau_ajax_media_album_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['title'] ) ) {
$response['feedback'] = sprintf(
'<div class="bp-feedback error"><span class="bp-icon" aria-hidden="true"></span><p>%s</p></div>',
esc_html__( 'Please enter title of album.', 'buddyboss' )
);
wp_send_json_error( $response );
}
// save media
$id = ! empty( $_POST['album_id'] ) ? $_POST['album_id'] : false;
$group_id = ! empty( $_POST['group_id'] ) ? $_POST['group_id'] : false;
$title = $_POST['title'];
$privacy = ! empty( $_POST['privacy'] ) ? $_POST['privacy'] : 'public';
$album_id = bp_album_add( array( 'id' => $id, 'title' => $title, 'privacy' => $privacy, 'group_id' => $group_id ) );
if ( ! $album_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 create the album.', 'buddyboss' )
);
wp_send_json_error( $response );
}
// save media
$medias = $_POST['medias'];
if ( ! empty( $medias ) ) {
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' );
}
}
$media_id = bp_media_add( array(
'attachment_id' => $media['id'],
'title' => $media['name'],
'activity_id' => $activity_id,
'album_id' => $album_id,
'group_id' => $group_id,
'privacy' => $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 attachment
update_post_meta( $media['id'], 'bp_media_saved', true );
}
}
if ( ! empty( $group_id ) && bp_is_active( 'groups' ) ) {
$group_link = bp_get_group_permalink( groups_get_group( $group_id ) );
$redirect_url = trailingslashit( $group_link . '/albums/' . $album_id );
} else {
$redirect_url = trailingslashit( bp_loggedin_user_domain() . bp_get_media_slug() . '/albums/' . $album_id );
}
wp_send_json_success( array(
'redirect_url' => $redirect_url,
) );
}
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.