BP_Messages_Notice::save()
Saves a notice.
Description
Return
(bool)
Source
File: bp-messages/classes/class-bp-messages-notice.php
public function save() {
global $wpdb;
$bp = buddypress();
$this->subject = apply_filters( 'messages_notice_subject_before_save', $this->subject, $this->id );
$this->message = apply_filters( 'messages_notice_message_before_save', $this->message, $this->id );
/**
* Fires before the current message notice item gets saved.
*
* Please use this hook to filter the properties above. Each part will be passed in.
*
* @since BuddyPress 1.0.0
*
* @param BP_Messages_Notice $this Current instance of the message notice item being saved. Passed by reference.
*/
do_action_ref_array( 'messages_notice_before_save', array( &$this ) );
if ( empty( $this->id ) ) {
$sql = $wpdb->prepare( "INSERT INTO {$bp->messages->table_name_notices} (subject, message, date_sent, is_active) VALUES (%s, %s, %s, %d)", $this->subject, $this->message, $this->date_sent, $this->is_active );
} else {
$sql = $wpdb->prepare( "UPDATE {$bp->messages->table_name_notices} SET subject = %s, message = %s, is_active = %d WHERE id = %d", $this->subject, $this->message, $this->is_active, $this->id );
}
if ( ! $wpdb->query( $sql ) ) {
return false;
}
if ( ! $id = $this->id ) {
$id = $wpdb->insert_id;
}
// Now deactivate all notices apart from the new one.
$wpdb->query( $wpdb->prepare( "UPDATE {$bp->messages->table_name_notices} SET is_active = 0 WHERE id != %d", $id ) );
bp_update_user_last_activity( bp_loggedin_user_id(), bp_core_current_time() );
/**
* Fires after the current message notice item has been saved.
*
* @since BuddyPress 1.0.0
*
* @param BP_Messages_Notice $this Current instance of the message item being saved. Passed by reference.
*/
do_action_ref_array( 'messages_notice_after_save', array( &$this ) );
return true;
}
Changelog
| Version | Description |
|---|---|
| BuddyPress 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.