BP_Groups_Group::save()
Save the current group to the database.
Description
Return
(bool) True on success, false on failure.
Source
File: bp-groups/classes/class-bp-groups-group.php
public function save() {
global $wpdb;
$bp = buddypress();
$this->creator_id = apply_filters( 'groups_group_creator_id_before_save', $this->creator_id, $this->id );
$this->name = apply_filters( 'groups_group_name_before_save', $this->name, $this->id );
$this->slug = apply_filters( 'groups_group_slug_before_save', $this->slug, $this->id );
$this->description = apply_filters( 'groups_group_description_before_save', $this->description, $this->id );
$this->status = apply_filters( 'groups_group_status_before_save', $this->status, $this->id );
$this->parent_id = apply_filters( 'groups_group_parent_id_before_save', $this->parent_id, $this->id );
$this->enable_forum = apply_filters( 'groups_group_enable_forum_before_save', $this->enable_forum, $this->id );
$this->date_created = apply_filters( 'groups_group_date_created_before_save', $this->date_created, $this->id );
/**
* Fires before the current group 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_Group $this Current instance of the group item being saved. Passed by reference.
*/
do_action_ref_array( 'groups_group_before_save', array( &$this ) );
// Groups need at least a name.
if ( empty( $this->name ) ) {
return false;
}
// Set slug with group title if not passed.
if ( empty( $this->slug ) ) {
$this->slug = sanitize_title( $this->name );
}
// Sanity check.
if ( empty( $this->slug ) ) {
return false;
}
// Check for slug conflicts if creating new group.
if ( empty( $this->id ) ) {
$this->slug = groups_check_slug( $this->slug );
}
if ( !empty( $this->id ) ) {
$sql = $wpdb->prepare(
"UPDATE {$bp->groups->table_name} SET
creator_id = %d,
name = %s,
slug = %s,
description = %s,
status = %s,
parent_id = %d,
enable_forum = %d,
date_created = %s
WHERE
id = %d
",
$this->creator_id,
$this->name,
$this->slug,
$this->description,
$this->status,
$this->parent_id,
$this->enable_forum,
$this->date_created,
$this->id
);
} else {
$sql = $wpdb->prepare(
"INSERT INTO {$bp->groups->table_name} (
creator_id,
name,
slug,
description,
status,
parent_id,
enable_forum,
date_created
) VALUES (
%d, %s, %s, %s, %s, %d, %d, %s
)",
$this->creator_id,
$this->name,
$this->slug,
$this->description,
$this->status,
$this->parent_id,
$this->enable_forum,
$this->date_created
);
}
if ( false === $wpdb->query($sql) )
return false;
if ( empty( $this->id ) )
$this->id = $wpdb->insert_id;
/**
* Fires after the current group item has been saved.
*
* @since BuddyPress 1.0.0
*
* @param BP_Groups_Group $this Current instance of the group item that was saved. Passed by reference.
*/
do_action_ref_array( 'groups_group_after_save', array( &$this ) );
wp_cache_delete( $this->id, 'bp_groups' );
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.