/** * Render the xprofile metabox for Community Profile screen. * * @since 2.0.0 * * @param WP_User|null $user The WP_User object for the user being edited. * @param array $args Aray of arguments for metaboxes. */ 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 } ?> <?php while (bp_profile_fields()) { bp_the_profile_field(); ?> <div<?php bp_field_css_class('bp-profile-field'); ?> > <?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'])); if (bp_get_the_profile_field_description()) { ?> <p class="description"><?php bp_the_profile_field_description(); ?> </p> <?php } /** * Fires before display of visibility form elements for profile metaboxes. * * @since 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(); ?> "> <?php printf(__('This field can be seen by: %s', 'buddypress'), '<span class="current-visibility-level">' . bp_get_the_profile_field_visibility_level_label() . '</span>'); ?> <?php if ($can_change_visibility) { ?> <a href="#" class="button visibility-toggle-link"><?php esc_html_e('Change', 'buddypress'); ?> </a> <?php } ?> </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?', 'buddypress'); ?> </legend> <?php bp_profile_visibility_radio_buttons(); ?> </fieldset> <a class="button field-visibility-settings-close" href="#"><?php esc_html_e('Close', 'buddypress'); ?> </a> </div> <?php } ?> <?php /** * Fires at end of custom profile field items on your xprofile screen tab. * * @since 1.1.0 */ do_action('bp_custom_profile_edit_fields'); ?> </div> <?php } // End bp_profile_fields(). ?> <?php } // End bp_profile_groups. }
$arr_current_visitor_has_permissions = $obj_bp_ev->ez_bp_profile_current_visitor_visibility_permissions(); ?> <?php while (bp_profile_groups()) { bp_the_profile_group(); ?> <?php if (bp_profile_group_has_fields()) { $str_echo1 = ''; ?> <?php do_action('bp_before_profile_field_content'); $str_echo1 .= '<div class="bp-widget ' . bp_get_the_profile_group_slug() . '">'; $str_echo1 .= '<h4>' . bp_get_the_profile_group_name() . '</h4>'; $str_echo2 = ''; while (bp_profile_fields()) { bp_the_profile_field(); // field ID $int_field_id = esc_html($field->id); // use our (custom) method to get the fields' vibility level $str_field_ev = $obj_bp_ev->ez_bp_get_the_profile_field_visibility_level(); // get the visible value $str_field_visible = $obj_bp_ev->get_level_visible($str_field_ev); // is the field's visibile okay for this visitor? if (isset($arr_current_visitor_has_permissions[$str_field_visible])) { $str_echo2 .= '<div class="viewfield field_' . $int_field_id . ' field_' . strtolower(sanitize_file_name($field->name)) . ' field_type_' . esc_html($field->type) . '">'; $str_echo2 .= '<label for="field_' . $int_field_id . '">' . bp_get_the_profile_field_name(); // $str_echo2 .= ' [' . $str_field_ev . ' - (TODO remove)]';
function bp_the_profile_group_slug() { echo bp_get_the_profile_group_slug(); }
/** * Render the xprofile metabox for Community Profile screen. * * @access public * @since BuddyPress (2.0.0) * * @param WP_User $user The WP_User object for the user being edited. */ public function user_admin_profile_metaboxes($user = null, $args = array()) { 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; } if (bp_has_profile($r)) { 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 } while (bp_profile_fields()) { bp_the_profile_field(); ?> <div<?php bp_field_css_class('bp-profile-field'); ?> > <?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'])); if (bp_get_the_profile_field_description()) { ?> <p class="description"><?php bp_the_profile_field_description(); ?> </p> <?php } 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(); ?> "> <?php printf(__('This field can be seen by: <span class="%s">%s</span>', 'buddypress'), esc_attr('current-visibility-level'), bp_get_the_profile_field_visibility_level_label()); if ($can_change_visibility) { ?> <a href="#" class="button visibility-toggle-link"><?php _e('Change', 'buddypress'); ?> </a> <?php } ?> </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?', 'buddypress'); ?> </legend> <?php bp_profile_visibility_radio_buttons(); ?> </fieldset> <a class="button field-visibility-settings-close" href="#"><?php _e('Close', 'buddypress'); ?> </a> </div> <?php } do_action('bp_custom_profile_edit_fields'); ?> </div> <?php } // bp_profile_fields() } // bp_profile_groups() } }