bp_profile_get_settings_visibility_select( array|string $args = '' )
Return the XProfile field visibility select list for settings.
Description
Parameters
- $args
-
(Optional) Args for the select list.
- 'field_id'
(int) ID of the field to render. - 'before'
(string) Markup to render before the field. - 'before_controls'
(string) markup before form controls. - 'after'
(string) Markup to render after the field. - 'after_controls'
(string) Markup after the form controls. - 'class'
(string) Class to apply to the field markup. - 'label_class'
(string) Class to apply for the label element. - 'notoggle_tag'
(string) Markup element to use for notoggle tag. - 'notoggle_class'
(string) Class to apply to the notoggle element.
Default value: ''
- 'field_id'
Return
(string) $retval
Source
File: bp-xprofile/bp-xprofile-template.php
function bp_profile_get_settings_visibility_select( $args = '' ) {
// Parse optional arguments.
$r = bp_parse_args( $args, array(
'field_id' => bp_get_the_profile_field_id(),
'before' => '',
'before_controls' => '',
'after' => '',
'after_controls' => '',
'class' => 'bp-xprofile-visibility',
'label_class' => 'bp-screen-reader-text',
'notoggle_tag' => 'span',
'notoggle_class' => 'field-visibility-settings-notoggle',
), 'xprofile_settings_visibility_select' );
// Empty return value, filled in below if a valid field ID is found.
$retval = '';
// Only do-the-do if there's a valid field ID.
if ( ! empty( $r['field_id'] ) ) :
// Start the output buffer.
ob_start();
// Output anything before.
echo $r['before']; ?>
<?php if ( bp_current_user_can( 'bp_xprofile_change_field_visibility' ) ) : ?>
<?php echo $r['before_controls']; ?>
<label for="<?php echo esc_attr( 'field_' . $r['field_id'] ) ; ?>_visibility" class="<?php echo esc_attr( $r['label_class'] ); ?>"><?php
/* translators: accessibility text */
_e( 'Select visibility', 'buddyboss' );
?></label>
<select class="<?php echo esc_attr( $r['class'] ); ?>" name="<?php echo esc_attr( 'field_' . $r['field_id'] ) ; ?>_visibility" id="<?php echo esc_attr( 'field_' . $r['field_id'] ) ; ?>_visibility">
<?php foreach ( bp_xprofile_get_visibility_levels() as $level ) : ?>
<option value="<?php echo esc_attr( $level['id'] ); ?>" <?php selected( $level['id'], bp_get_the_profile_field_visibility_level() ); ?>><?php echo esc_html( $level['label'] ); ?></option>
<?php endforeach; ?>
</select>
<?php echo $r['after_controls']; ?>
<?php else : ?>
<<?php echo esc_html( $r['notoggle_tag'] ); ?> class="<?php echo esc_attr( $r['notoggle_class'] ); ?>"><?php bp_the_profile_field_visibility_level_label(); ?></<?php echo esc_html( $r['notoggle_tag'] ); ?>>
<?php endif;
// Output anything after.
echo $r['after'];
// Get the output buffer and empty it.
$retval = ob_get_clean();
endif;
/**
* Filters the dropdown list for setting visibility.
*
* @since BuddyPress 2.0.0
*
* @param string $retval HTML output for the visibility dropdown list.
* @param array $r Parsed arguments to be used with display.
* @param array $args Original passed in arguments to be used with display.
*/
return apply_filters( 'bp_profile_settings_visibility_select', $retval, $r, $args );
}
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.