BP_Groups_Member::save()
Save the membership data to the database.
Description
Return
(bool) True on success, false on failure.
Source
File: bp-groups/classes/class-bp-groups-member.php
public function save() { global $wpdb; $bp = buddypress(); $this->user_id = apply_filters( 'groups_member_user_id_before_save', $this->user_id, $this->id ); $this->group_id = apply_filters( 'groups_member_group_id_before_save', $this->group_id, $this->id ); $this->inviter_id = apply_filters( 'groups_member_inviter_id_before_save', $this->inviter_id, $this->id ); $this->is_admin = apply_filters( 'groups_member_is_admin_before_save', $this->is_admin, $this->id ); $this->is_mod = apply_filters( 'groups_member_is_mod_before_save', $this->is_mod, $this->id ); $this->is_banned = apply_filters( 'groups_member_is_banned_before_save', $this->is_banned, $this->id ); $this->user_title = apply_filters( 'groups_member_user_title_before_save', $this->user_title, $this->id ); $this->date_modified = apply_filters( 'groups_member_date_modified_before_save', $this->date_modified, $this->id ); $this->is_confirmed = apply_filters( 'groups_member_is_confirmed_before_save', $this->is_confirmed, $this->id ); $this->comments = apply_filters( 'groups_member_comments_before_save', $this->comments, $this->id ); $this->invite_sent = apply_filters( 'groups_member_invite_sent_before_save', $this->invite_sent, $this->id ); /** * Fires before the current group membership 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_Groups_Member $this Current instance of the group membership item being saved. Passed by reference. */ do_action_ref_array( 'groups_member_before_save', array( &$this ) ); // The following properties are required; bail if not met. if ( empty( $this->user_id ) || empty( $this->group_id ) ) { return false; } if ( !empty( $this->id ) ) { $sql = $wpdb->prepare( "UPDATE {$bp->groups->table_name_members} SET inviter_id = %d, is_admin = %d, is_mod = %d, is_banned = %d, user_title = %s, date_modified = %s, is_confirmed = %d, comments = %s, invite_sent = %d WHERE id = %d", $this->inviter_id, $this->is_admin, $this->is_mod, $this->is_banned, $this->user_title, $this->date_modified, $this->is_confirmed, $this->comments, $this->invite_sent, $this->id ); } else { // Ensure that user is not already a member of the group before inserting. if ( $wpdb->get_var( $wpdb->prepare( "SELECT id FROM {$bp->groups->table_name_members} WHERE user_id = %d AND group_id = %d AND is_confirmed = 1 LIMIT 1", $this->user_id, $this->group_id ) ) ) { return false; } $sql = $wpdb->prepare( "INSERT INTO {$bp->groups->table_name_members} ( user_id, group_id, inviter_id, is_admin, is_mod, is_banned, user_title, date_modified, is_confirmed, comments, invite_sent ) VALUES ( %d, %d, %d, %d, %d, %d, %s, %s, %d, %s, %d )", $this->user_id, $this->group_id, $this->inviter_id, $this->is_admin, $this->is_mod, $this->is_banned, $this->user_title, $this->date_modified, $this->is_confirmed, $this->comments, $this->invite_sent ); } if ( !$wpdb->query( $sql ) ) return false; $this->id = $wpdb->insert_id; // Update the user's group count. self::refresh_total_group_count_for_user( $this->user_id ); // Update the group's member count. self::refresh_total_member_count_for_group( $this->group_id ); /** * Fires after the current group membership item has been saved. * * Please use this hook to filter the properties above. Each part will be passed in. * * @since BuddyPress 1.0.0 * * @param BP_Groups_Member $this Current instance of the group membership item has been saved. Passed by reference. */ do_action_ref_array( 'groups_member_after_save', array( &$this ) ); return true; }
Changelog
Version | Description |
---|---|
BuddyPress 1.6.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.