xprofile_admin_field( BP_XProfile_Field $admin_field, object $admin_group, string $class = '' )

Handles the WYSIWYG display of each profile field on the edit screen.

Description

Parameters

$admin_field

(BP_XProfile_Field) (Required) Admin field.

$admin_group

(object) (Required) Admin group object.

$class

(string) (Optional) Classes to append to output.

Default value: ''

Source

File: bp-xprofile/bp-xprofile-admin.php

function xprofile_admin_field( $admin_field, $admin_group, $class = '' ) {
	global $field;

	$field = $admin_field;

	// Users admin URL
	$url = bp_get_admin_url( 'admin.php' );

	// Edit
	$field_edit_url = add_query_arg( array(
		'page'     => 'bp-profile-setup',
		'mode'     => 'edit_field',
		'group_id' => (int) $field->group_id,
		'field_id' => (int) $field->id
	), $url );

	// Delete
	if ( $field->can_delete ) {
		$field_delete_url = add_query_arg( array(
			'page'     => 'bp-profile-setup',
			'mode'     => 'delete_field',
			'field_id' => (int) $field->id
		), $url . '#tabs-' . (int) $field->group_id );
	}

	$fieldset_class = [ $field->type ];

	// sortable class
	$fieldset_class[] = in_array( $field->id, array_filter( [
		bp_xprofile_firstname_field_id(),
		bp_xprofile_lastname_field_id(),
		bp_xprofile_nickname_field_id()
	] ) )? 'primary_field' : 'sortable';

	$fieldset_class[] = ! empty( $class )? $class : '';
	$fieldset_class = array_filter( $fieldset_class );
	?>

	<fieldset id="draggable_field_<?php echo esc_attr( $field->id ); ?>" class="<?php echo implode( ' ', $fieldset_class ); ?>">
		<legend>
			<span>
				<span class="field-name"><?php bp_the_profile_field_name(); ?></span>

				<?php if ( empty( $field->can_delete ) ) : ?><?php esc_html_e( '(Signup)', 'buddyboss' ); endif; ?>
				<?php bp_the_profile_field_required_label(); ?>
				<?php if ( bp_xprofile_get_meta( $field->id, 'field', 'signup_position' ) ) : ?><?php esc_html_e( '(Signup)', 'buddyboss' ); endif; ?>
				<?php if ( bp_get_member_types() ) : echo $field->get_member_type_label(); endif; ?>

				<?php

				/**
				 * Fires at end of legend above the name field in base xprofile group.
				 *
				 * @since BuddyPress 2.2.0
				 *
				 * @param BP_XProfile_Field $field Current BP_XProfile_Field
				 *                                 object being rendered.
				 */
				do_action( 'xprofile_admin_field_name_legend', $field ); ?>
			</span>
		</legend>
		<div class="field-wrapper">

			<?php if ( $field->description ) : ?>

				<p class="description"><?php echo esc_attr( $field->description ); ?></p>

			<?php endif; ?>

			<div class="actions">
				<a class="button edit" href="<?php echo esc_url( $field_edit_url ); ?>"><?php _e( 'Edit', 'buddyboss' ); ?></a>

				<?php if ( $field->can_delete ) : ?>

					<div class="delete-button">
						<a class="confirm submit-delete deletion" href="<?php echo esc_url( $field_delete_url ); ?>"><?php _e( 'Delete', 'buddyboss' ); ?></a>
					</div>

				<?php endif; ?>

				<?php

				/**
				 * Fires at end of field management links in xprofile management admin.
				 *
				 * @since BuddyPress 2.2.0
				 *
				 * @param BP_XProfile_Group $group BP_XProfile_Group object
				 *                                 for the current group.
				 */
				do_action( 'xprofile_admin_field_action', $field ); ?>

			</div>
		</div>
	</fieldset>

<?php
}

Changelog

Changelog
Version Description
BuddyPress 1.5.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.