Skip to:
Content

BuddyPress.org

Ticket #8388: 8388.diff

File 8388.diff, 1.5 KB (added by dd32, 4 years ago)
  • bp-xprofile/classes/class-bp-xprofile-profiledata.php

    class BP_XProfile_ProfileData { 
    669669        }
    670670
    671671        /**
    672672         * Delete all data for provided user ID.
    673673         *
    674674         * @since 1.0.0
    675675         *
    676676         * @param int $user_id User ID to remove data for.
    677677         * @return false|int
    678678         */
    679679        public static function delete_data_for_user( $user_id ) {
    680680                global $wpdb;
    681681
    682682                $bp = buddypress();
    683683
    684                 return $wpdb->query( $wpdb->prepare( "DELETE FROM {$bp->profile->table_name_data} WHERE user_id = %d", $user_id ) );
     684                $field_ids = $wpdb->get_col( $wpdb->prepare( "SELECT field_id FROM {$bp->profile->table_name_data} WHERE user_id = %d", $user_id ) );
     685
     686                $removed = $wpdb->query( $wpdb->prepare( "DELETE FROM {$bp->profile->table_name_data} WHERE user_id = %d", $user_id ) );
     687
     688                if ( ! $removed ) {
     689                        return false;
     690                }
     691
     692                foreach ( $field_ids as $field_id ) {
     693                        wp_cache_delete( "{$user_id}:{$field_id}", 'bp_xprofile_data' );
     694                }
     695
     696                return $removed;
    685697        }
    686698
    687699        /**
    688700         * Get random field type by user ID.
    689701         *
    690702         * @since 1.0.0
    691703         *
    692704         * @param int    $user_id          User ID to query for.
    693705         * @param string $exclude_fullname SQL portion used to exclude by field ID.
    694706         * @return array|null|object
    695707         */
    696708        public static function get_random( $user_id, $exclude_fullname ) {
    697709                global $wpdb;
    698710
    699711                $exclude_sql = ! empty( $exclude_fullname ) ? ' AND pf.id != 1' : '';