bp_nouveau_ajax_dismiss_sitewide_notice()
Description Description
Source Source
File: bp-templates/bp-nouveau/includes/messages/ajax.php
function bp_nouveau_ajax_dismiss_sitewide_notice() {
if ( empty( $_POST['action'] ) ) {
wp_send_json_error();
}
$response = array(
'feedback' => '<div class="bp-feedback error"><span class="bp-icon" aria-hidden="true"></span><p>' . __( 'There was a problem dismissing the notice. Please try again.', 'buddypress' ) . '</p></div>',
'type' => 'error',
);
if ( false === bp_is_active( 'messages' ) ) {
wp_send_json_error( $response );
}
if ( empty( $_POST['nonce'] ) || ! wp_verify_nonce( $_POST['nonce'], 'bp_nouveau_messages' ) ) {
wp_send_json_error( $response );
}
// Check capability.
if ( ! is_user_logged_in() || ! bp_core_can_edit_settings() ) {
wp_send_json_error( $response );
}
// Mark the active notice as closed.
$notice = BP_Messages_Notice::get_active();
if ( ! empty( $notice->id ) ) {
$user_id = bp_loggedin_user_id();
$closed_notices = bp_get_user_meta( $user_id, 'closed_notices', true );
if ( empty( $closed_notices ) ) {
$closed_notices = array();
}
// Add the notice to the array of the user's closed notices.
$closed_notices[] = (int) $notice->id;
bp_update_user_meta( $user_id, 'closed_notices', array_map( 'absint', array_unique( $closed_notices ) ) );
wp_send_json_success( array(
'feedback' => '<div class="bp-feedback info"><span class="bp-icon" aria-hidden="true"></span><p>' . __( 'Sitewide notice dismissed', 'buddypress' ) . '</p></div>',
'type' => 'success',
) );
}
}
Changelog Changelog
| Version | Description |
|---|---|
| 3.0.0 | Introduced. |