buddypress ocultar campos de perfil
Frecuentes
Visto 3,585 veces
2
Sé que hay un método en BuddyPress que puede ayudar a ocultar algunos campos de perfil:
function bp_has_profile( $args = '' ) {
global $profile_template;
// Only show empty fields if we're on the Dashboard, or we're on a user's profile edit page,
// or this is a registration page
$hide_empty_fields_default = ( !is_network_admin() && !is_admin() && !bp_is_user_profile_edit() && !bp_is_register_page() );
// We only need to fetch visibility levels when viewing your own profile
if ( bp_is_my_profile() || bp_current_user_can( 'bp_moderate' ) || bp_is_register_page() ) {
$fetch_visibility_level_default = true;
} else {
$fetch_visibility_level_default = false;
}
$defaults = array(
'user_id' => bp_displayed_user_id(),
'profile_group_id' => false,
'hide_empty_groups' => true,
'hide_empty_fields' => $hide_empty_fields_default,
'fetch_fields' => true,
'fetch_field_data' => true,
'fetch_visibility_level' => $fetch_visibility_level_default,
'exclude_groups' => false, // Comma-separated list of profile field group IDs to exclude
'exclude_fields' => false // Comma-separated list of profile field IDs to exclude
);
$r = wp_parse_args( $args, $defaults );
extract( $r, EXTR_SKIP );
$profile_template = new BP_XProfile_Data_Template( $user_id, $profile_group_id, $hide_empty_groups, $fetch_fields, $fetch_field_data, $exclude_groups, $exclude_fields, $hide_empty_fields, $fetch_visibility_level );
return apply_filters( 'bp_has_profile', $profile_template->has_groups(), $profile_template );
}
No estoy seguro de cómo llamar a este método y pasar 'exclude_fields' => $IDs_to_hide
4 Respuestas
0
Sí, es posible ocultar algunos campos de la página de perfil.
Primero vaya a edit.php en la carpeta de su tema. Aquí si desea ocultar el cuadro de texto y el nombre es "Nombre completo".
<?php if ( 'textbox' == bp_get_the_profile_field_type() ) : ?>
<?php if ( 'Full Name' != bp_the_profile_field_name() ) : ?>
<label for="<?php bp_the_profile_field_input_name(); ?>"><?php bp_the_profile_field_name(); ?> <?php if ( bp_get_the_profile_field_is_required() ) : ?><?php _e( '(required)', 'buddypress' ); ?><?php endif; ?></label>
<input type="text" name="<?php bp_the_profile_field_input_name(); ?>" id="<?php bp_the_profile_field_input_name(); ?>" value="<?php bp_the_profile_field_edit_value(); ?>" <?php if ( bp_get_the_profile_field_is_required() ) : ?>aria-required="true"<?php endif; ?>/>
<?php endif; ?>
<?php endif; ?>
El código anterior es el mismo que en el archivo profile.php, pero solo pondré la nueva condición if igual que poner la condición en otro Radiobutton y Selectbox, etc.
Su campo de perfil Nombre completo no se muestra en su perfil.
respondido 28 nov., 12:05
0
No estoy seguro de si hay una manera de hacer esto con las funciones de su tema, pero puede ocultarlo fácilmente en el bucle de edición. Copie /buddypress/members/single/profile/edit.php a su tema y agregue esta línea:
<?php if ( 'Field Name' == bp_get_the_profile_field_name() ) continue; ?>
Justo debajo de esta línea:
<?php while ( bp_profile_fields() ) : bp_the_profile_field(); ?>
Esto es similar al enfoque de Chirag, pero omitirá todo lo relacionado con el campo, incluido el contenedor div, para que no tenga HTML superfluo.
Respondido 08 Jul 13, 18:07
0
Puede usar CSS para ocultar campos específicos con el selector de ID.
#field_1 {
display:none;
}
#signup_username {
display:none;
}
Respondido 02 ago 16, 17:08
0
Puedes hacerlo a través de bp_before_has_profile_parse_args
filtro:
function skip_xprofile_fields( $args ){
global $bp, $wpdb;
$field_name = 'First Name';
$field_id = $wpdb->get_var( "SELECT id FROM {$bp->profile->table_name_fields} WHERE `name` = '".esc_sql($field_name)."'");
$args['exclude_fields'] = ','.$field_id;
return $args;
}
add_filter('bp_before_has_profile_parse_args', 'skip_xprofile_fields' );
Solo reemplaza $field_name
var con su nombre de campo.
Respondido el 25 de junio de 18 a las 21:06
No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas buddypress or haz tu propia pregunta.
Hola, utilicé esto y funciona muy bien, pero cuando presiono el botón Guardar, vacía todos los campos ocultos, por lo que ya no tienen un valor. ¿Te has encontrado con este problema también? - Jacob Jan Mosselman