BP_XProfile_ProfileData::save()
Save the data for the XProfile field.
Description
Return
(bool)
Source
File: bp-xprofile/classes/class-bp-xprofile-profiledata.php
public function save() { global $wpdb; $bp = buddypress(); /** * Filters the data's user ID before saving to the database. * * @since BuddyPress 1.0.0 * * @param int $user_id The user ID. * @param int $data_id The field data ID. */ $this->user_id = apply_filters( 'xprofile_data_user_id_before_save', $this->user_id, $this->id ); /** * Filters the data's field ID before saving to the database. * * @since BuddyPress 1.0.0 * * @param int $field_id The field ID. * @param int $data_id The field data ID. */ $this->field_id = apply_filters( 'xprofile_data_field_id_before_save', $this->field_id, $this->id ); /** * Filters the data's value before saving to the database. * * @since BuddyPress 1.0.0 * @since BuddyPress 2.1.0 Added `$reserialize` and `$this` parameters. * * @param string $field_value The field value. * @param int $data_id The field data ID. * @param bool $reserialize Whether to reserialize arrays before returning. Defaults to true. * @param BP_XProfile_ProfileData $this Current instance of the profile data being saved. */ $this->value = apply_filters( 'xprofile_data_value_before_save', $this->value, $this->id, true, $this ); /** * Filters the data's last updated timestamp before saving to the database. * * @since BuddyPress 1.0.0 * * @param int $last_updated The last updated timestamp. * @param int $data_id The field data ID. */ $this->last_updated = apply_filters( 'xprofile_data_last_updated_before_save', bp_core_current_time(), $this->id ); /** * Fires before the current profile data instance gets saved. * * Please use this hook to filter the properties above. Each part will be passed in. * * @since BuddyPress 1.0.0 * * @param BP_XProfile_ProfileData $this Current instance of the profile data being saved. */ do_action_ref_array( 'xprofile_data_before_save', array( $this ) ); if ( $this->is_valid_field() ) { if ( $this->exists() && strlen( trim( $this->value ) ) ) { $result = $wpdb->query( $wpdb->prepare( "UPDATE {$bp->profile->table_name_data} SET value = %s, last_updated = %s WHERE user_id = %d AND field_id = %d", $this->value, $this->last_updated, $this->user_id, $this->field_id ) ); } elseif ( $this->exists() && empty( $this->value ) ) { // Data removed, delete the entry. $result = $this->delete(); } else { $result = $wpdb->query( $wpdb->prepare("INSERT INTO {$bp->profile->table_name_data} (user_id, field_id, value, last_updated) VALUES (%d, %d, %s, %s)", $this->user_id, $this->field_id, $this->value, $this->last_updated ) ); $this->id = $wpdb->insert_id; } if ( false === $result ) { return false; } /** * Fires after the current profile data instance gets saved. * * @since BuddyPress 1.0.0 * * @param BP_XProfile_ProfileData $this Current instance of the profile data being saved. */ do_action_ref_array( 'xprofile_data_after_save', array( $this ) ); return true; } return false; }
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.