bp_dd_import_users_profile()
Import extended profile fields.
Description
Return
(int)
Source
File: bp-core/bp-core-tools-default-data.php
function bp_dd_import_users_profile() { $count = 0; if ( ! bp_is_active( 'xprofile' ) ) { return $count; } $data = array(); $xprofile_structure = require_once( BP_DEFAULT_DATA_DIR . 'data/xprofile_structure.php' ); // Firstly, import profile groups. foreach ( $xprofile_structure as $group_type => $group_data ) { $group_id = xprofile_insert_field_group( array( 'name' => $group_data['name'], 'description' => $group_data['desc'], ) ); $groups[] = $group_id; // Then import fields. foreach ( $group_data['fields'] as $field_type => $field_data ) { $field_id = xprofile_insert_field( array( 'field_group_id' => $group_id, 'parent_id' => 0, 'type' => $field_type, 'name' => $field_data['name'], 'description' => $field_data['desc'], 'is_required' => $field_data['required'], 'order_by' => 'custom', ) ); if ( $field_id ) { bp_xprofile_update_field_meta( $field_id, 'default_visibility', $field_data['default-visibility'] ); bp_xprofile_update_field_meta( $field_id, 'allow_custom_visibility', $field_data['allow-custom-visibility'] ); $data[ $field_id ]['type'] = $field_type; // finally import options if ( ! empty( $field_data['options'] ) ) { foreach ( $field_data['options'] as $option ) { $option_id = xprofile_insert_field( array( 'field_group_id' => $group_id, 'parent_id' => $field_id, 'type' => 'option', 'name' => $option['name'], 'can_delete' => true, 'is_default_option' => $option['is_default_option'], 'option_order' => $option['option_order'], ) ); $data[ $field_id ]['options'][ $option_id ] = $option['name']; } } else { $data[ $field_id ]['options'] = array(); } } } } $xprofile_data = require_once( BP_DEFAULT_DATA_DIR . 'data/xprofile_data.php' ); $users = bp_dd_get_random_users_ids( 0 ); // Now import profile fields data for all fields for each user. foreach ( $users as $user_id ) { foreach ( $data as $field_id => $field_data ) { switch ( $field_data['type'] ) { case 'datebox': case 'textarea': case 'number': case 'textbox': case 'url': case 'selectbox': case 'radio': if ( xprofile_set_field_data( $field_id, $user_id, $xprofile_data[ $field_data['type'] ][ array_rand( $xprofile_data[ $field_data['type'] ] ) ] ) ) { $count ++; } break; case 'checkbox': case 'multiselectbox': if ( xprofile_set_field_data( $field_id, $user_id, explode( ',', $xprofile_data[ $field_data['type'] ][ array_rand( $xprofile_data[ $field_data['type'] ] ) ] ) ) ) { $count ++; } break; } } } if ( ! empty( $groups ) ) { /** @noinspection PhpParamsInspection */ bp_update_option( 'bp_dd_imported_user_xprofile_ids', $groups ); } return $count; }
Changelog
Version | Description |
---|---|
BuddyBoss 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.