web-dev-qa-db-fra.com

comment faire une entrée de profil en lecture seule sauf pour les gestionnaires de site

J'ai défini des champs de profil supplémentaires dans buddypress (sous les champs de profil des utilisateurs) et je veux m'assurer qu'ils sont en lecture seule, à l'exception des administrateurs de site.

Comment puis-je accomplir ceci?

Je vous remercie.

1
arcee123

Vous pouvez masquer les champs de profil sur l'écran d'édition à tout le monde, à l'exception des administrateurs de site. Ils ne peuvent donc être modifiés que par les administrateurs de site. Ils seront toujours visibles sur l'écran du profil public. Vous pouvez obtenir l'identifiant du champ en consultant l'url de wp-admin lorsque vous éditez ce champ, ou simplement en survolant le bouton Éditer. Ajoutez cette fonction à votre fichier functions.php ou bp-custom.php

function arcee_hide_profile_fields( $retval ) {

    if( is_super_admin () )
        return $retval;

    if(  bp_is_profile_edit()  )
        $retval['exclude_fields'] = '3,43,253'; //field ID's separated by comma

    return $retval;

}
add_filter( 'bp_after_has_profile_parse_args', 'arcee_hide_profile_fields' );
2
shanebp

Ajoutez cet extrait à votre fichier functions.php ou bp-custom.php

function bpfr_hide_profile_edit( $retval ) {    
// remove field from edit tab
if(  bp_is_profile_edit() ) {       
    $retval['exclude_fields'] = '2'; // field ID's separated by comma
}   
// allow field on register page
if ( bp_is_register_page() ) {
    $retval['include_fields'] = '2'; // field ID's separated by comma
    }       

// hide the field on profile view tab
if ( $data = bp_get_profile_field_data( 'field=2' ) ) : 
    $retval['exclude_fields'] = '2'; // field ID's separated by comma   
endif;  

return $retval; 
}
add_filter( 'bp_after_has_profile_parse_args', 'bpfr_hide_profile_edit' );
0
jim.duck