BP_XProfile_User_Admin::user_admin_profile_metaboxes( WP_User|null $user = null, array $args = array() )
Render the xprofile metabox for Community Profile screen.
Description
Parameters
- $user
-
(Optional) The WP_User object for the user being edited.
Default value: null
- $args
-
(Optional) Aray of arguments for metaboxes.
Default value: array()
Source
File: bp-xprofile/classes/class-bp-xprofile-user-admin.php
public function user_admin_profile_metaboxes( $user = null, $args = array() ) {
// Bail if no user ID.
if ( empty( $user->ID ) ) {
return;
}
$r = bp_parse_args( $args['args'], array(
'profile_group_id' => 0,
'user_id' => $user->ID
), 'bp_xprofile_user_admin_profile_loop_args' );
// We really need these args.
if ( empty( $r['profile_group_id'] ) || empty( $r['user_id'] ) ) {
return;
}
// Bail if no profile fields are available.
if ( ! bp_has_profile( $r ) ) {
return;
}
// Loop through profile groups & fields.
while ( bp_profile_groups() ) : bp_the_profile_group(); ?>
<input type="hidden" name="field_ids[]" id="<?php echo esc_attr( 'field_ids_' . bp_get_the_profile_group_slug() ); ?>" value="<?php echo esc_attr( bp_get_the_profile_group_field_ids() ); ?>" />
<?php if ( bp_get_the_profile_group_description() ) : ?>
<p class="description"><?php bp_the_profile_group_description(); ?></p>
<?php endif; ?>
<?php while ( bp_profile_fields() ) : bp_the_profile_field(); ?>
<div<?php bp_field_css_class( 'bp-profile-field' ); ?>>
<fieldset>
<?php
$field_type = bp_xprofile_create_field_type( bp_get_the_profile_field_type() );
$field_type->edit_field_html( array( 'user_id' => $r['user_id'] ) );
/**
* Fires before display of visibility form elements for profile metaboxes.
*
* @since BuddyPress 1.7.0
*/
do_action( 'bp_custom_profile_edit_fields_pre_visibility' );
$can_change_visibility = bp_current_user_can( 'bp_xprofile_change_field_visibility' ); ?>
<p class="field-visibility-settings-<?php echo $can_change_visibility ? 'toggle' : 'notoggle'; ?>" id="field-visibility-settings-toggle-<?php bp_the_profile_field_id(); ?>"><span id="<?php bp_the_profile_field_input_name(); ?>-2">
<?php
printf(
__( 'This field can be seen by: %s', 'buddyboss' ),
'<span class="current-visibility-level">' . bp_get_the_profile_field_visibility_level_label() . '</span>'
);
?>
</span>
<?php if ( $can_change_visibility ) : ?>
<button type="button" class="button visibility-toggle-link" aria-describedby="<?php bp_the_profile_field_input_name(); ?>-2" aria-expanded="false"><?php esc_html_e( 'Change', 'buddyboss' ); ?></button>
<?php endif; ?>
</p>
<?php if ( $can_change_visibility ) : ?>
<div class="field-visibility-settings" id="field-visibility-settings-<?php bp_the_profile_field_id() ?>">
<fieldset>
<legend><?php _e( 'Who can see this field?', 'buddyboss' ); ?></legend>
<?php bp_profile_visibility_radio_buttons(); ?>
</fieldset>
<button type="button" class="button field-visibility-settings-close"><?php esc_html_e( 'Close', 'buddyboss' ); ?></button>
</div>
<?php endif; ?>
<?php
/**
* Fires at end of custom profile field items on your xprofile screen tab.
*
* @since BuddyPress 1.1.0
*/
do_action( 'bp_custom_profile_edit_fields' ); ?>
</fieldset>
</div>
<?php endwhile; // End bp_profile_fields(). ?>
<?php endwhile; // End bp_profile_groups.
}
Changelog
| Version | Description |
|---|---|
| BuddyPress 2.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.