Remover a seção Opções pessoais do perfil

11

Quero ocultar / remover as Opções pessoais na página de administração Seu perfil ( wp-admin/profile.php).

Estou ciente de que existem soluções para isso, mas elas usam o jQuery para ocultar esta seção. Isso funciona, mas quando um usuário tem o JavaScript desativado no navegador, ele será exibido novamente. Portanto, não é uma maneira adequada de remover as Opções pessoais.

Existe uma maneira de remover a seção Opções Pessoais da fonte HTML da página? Isso significa que não há hacks jQuery ou CSS ou modificação de arquivo principal.

dev-jim
fonte
Apenas para adicionar, se um usuário tiver o JavaScript desativado, há muito mais que ele não poderá usar no Wordpress. Mas ainda assim, fazê-lo do lado do servidor é muito melhor quando possível :)
Tim Malone
Tenha cuidado - consulte a resposta: wordpress.stackexchange.com/a/162277/33667
T.Todua
1
Possível duplicata de Como remover esses campos da seção 'Perfil'?
T.Todua

Respostas:

24

Isso deve fazer o truque

// removes the `profile.php` admin color scheme options
remove_action( 'admin_color_scheme_picker', 'admin_color_scheme_picker' );

if ( ! function_exists( 'cor_remove_personal_options' ) ) {
  /**
   * Removes the leftover 'Visual Editor', 'Keyboard Shortcuts' and 'Toolbar' options.
   */
  function cor_remove_personal_options( $subject ) {
    $subject = preg_replace( '#<h3>Personal Options</h3>.+?/table>#s', '', $subject, 1 );
    return $subject;
  }

  function cor_profile_subject_start() {
    ob_start( 'cor_remove_personal_options' );
  }

  function cor_profile_subject_end() {
    ob_end_flush();
  }
}
add_action( 'admin_head-profile.php', 'cor_profile_subject_start' );
add_action( 'admin_footer-profile.php', 'cor_profile_subject_end' );

Além disso, não se esqueça de marcar suas perguntas anteriores como resolvidas :)


fonte
isso é incrível, mas como faço para funcionar no WP 3.4? somente o seletor de esquema de cores é removido. provavelmente porque eu não consigo encontrar os arquivos admin_head-profile.phpe admin_footer-profile.phpno núcleo. Ideias? muito obrigado.
Ana Ban
Tem certeza de que não funciona? Acabei de usar isso em uma nova instalação e funcionou bem. Observe que você deve editar o código acima se estiver usando outro idioma. Além disso, aqui estão algumas informações sobre admin_head-profile.phpe admin_footer-profile.php: codex.wordpress.org/Plugin_API/...
@CorvanNoorloos Obrigado por isso, existe alguma maneira de deixar a opção para permitir que eles verifiquem se querem mostrar a barra de ferramentas ou não?
Greenhoe 17/05
6

Estava apenas tentando descobrir isso e me deparei com esta resposta. O código acima de Cor van não funciona mais, mas com uma ligeira alteração no add_action, ele pode.

Tudo o que você precisa fazer é alterar as duas últimas linhas de:

add_action( 'admin_head-profile.php', 'cor_profile_subject_start' );
add_action( 'admin_footer-profile.php', 'cor_profile_subject_end' );

para

add_action( 'admin_head-user-edit.php', 'cor_profile_subject_start' );
add_action( 'admin_footer-user-edit.php', 'cor_profile_subject_end' );

Portanto, o código final seria algo como:

if ( ! function_exists( 'cor_remove_personal_options' ) ) {
  /**
   * Removes the leftover 'Visual Editor', 'Keyboard Shortcuts' and 'Toolbar' options.
   */
  function cor_remove_personal_options( $subject ) {
    $subject = preg_replace( '#<h3>Personal Options</h3>.+?/table>#s', '', $subject, 1 );
    return $subject;
  }

  function cor_profile_subject_start() {
    ob_start( 'cor_remove_personal_options' );
  }

  function cor_profile_subject_end() {
    ob_end_flush();
  }
}
add_action( 'admin_head-user-edit.php', 'cor_profile_subject_start' );
add_action( 'admin_footer-user-edit.php', 'cor_profile_subject_end' );
KornDev
fonte
Bom acompanhamento, essa alteração no código original funcionou perfeitamente.
Daniel
Você poderia me dizer como posso remover mais elementos <h3>? Quais modificações do código acima eu preciso?
Fabian
5

A resposta aceita não está funcionando com 4.8

Aí vem um código atualizado e simplificado que deve funcionar com qualquer versão:

        // removes admin color scheme options

        remove_action( 'admin_color_scheme_picker', 'admin_color_scheme_picker' );

        //Removes the leftover 'Visual Editor', 'Keyboard Shortcuts' and 'Toolbar' options.

        add_action( 'admin_head', function () {

            ob_start( function( $subject ) {

                $subject = preg_replace( '#<h[0-9]>'.__("Personal Options").'</h[0-9]>.+?/table>#s', '', $subject, 1 );
                return $subject;
            });
        });

        add_action( 'admin_footer', function(){

            ob_end_flush();
        });     
RafaSashi
fonte
1
+1, mas com o mesmo problema das respostas aceitas, a string precisa ser localizada para que ela funcione com idiomas não ingleses.
Mark Kaplun
@MarkKaplun isso mesmo! Eu fiz a mudança.
RafaSashi
3

Graças ao comentário do @Per, consegui trabalhar com o 4.5.2

    // removes admin color scheme options
    remove_action( 'admin_color_scheme_picker', 'admin_color_scheme_picker' );

    if ( ! function_exists( 'cor_remove_personal_options' ) ) {
        /**
        * Removes the leftover 'Visual Editor', 'Keyboard Shortcuts' and 'Toolbar' options.
        */
        function cor_remove_personal_options( $subject ) {
            $subject = preg_replace( '#<h2>Personal Options</h2>.+?/table>#s', '', $subject, 1 );
            return $subject;
        }

        function cor_profile_subject_start() {
            ob_start( 'cor_remove_personal_options' );
        }

        function cor_profile_subject_end() {
            ob_end_flush();
        }
    }
    add_action( 'admin_head', 'cor_profile_subject_start' );
    add_action( 'admin_footer', 'cor_profile_subject_end' );`
Menian Lee
fonte
2

Atualização para 3.9, os seguintes trabalhos:

add_action( 'admin_head', 'cor_profile_subject_start' );
add_action( 'admin_footer', 'cor_profile_subject_end' );
Allen Sutton
fonte
1

Aqui está minha solução CSS, testada no Wordpress 4.9.8

remove_action( 'admin_color_scheme_picker', 'admin_color_scheme_picker' );
add_action( 'admin_head', function(){
    ob_start(); ?>
    <style>
        #your-profile > h2,
        .user-rich-editing-wrap,
        .user-syntax-highlighting-wrap,
        .user-comment-shortcuts-wrap,
        .user-admin-bar-front-wrap {
            display: none;
        }
    </style>
    <?php ob_end_flush();
});
Conceder
fonte
0

Eu só queria esclarecer que o código não funcionará para versões localizadas do WordPress, por causa da Personal Optionsstring codificada . Não consigo pensar em nenhuma solução fácil aqui, mas sugestões são bem-vindas.

Eu teria adicionado isso como um comentário, mas não tenho reputação suficiente para adicionar um comentário.

Aproveito também para re-colar todo o código atualizado para o WordPress versão 3.9.

Aqui está:

// removes the `profile.php` admin color scheme options
remove_action( 'admin_color_scheme_picker', 'admin_color_scheme_picker' );

if ( ! function_exists( 'cor_remove_personal_options' ) ) {
  /**
   * Removes the leftover 'Visual Editor', 'Keyboard Shortcuts' and 'Toolbar' options.
   */
  function cor_remove_personal_options( $subject ) {
    $subject = preg_replace( '#<h3>Personal Options</h3>.+?/table>#s', '', $subject, 1 );
    return $subject;
  }

  function cor_profile_subject_start() {
    ob_start( 'cor_remove_personal_options' );
  }

  function cor_profile_subject_end() {
    ob_end_flush();
  }
}
add_action( 'admin_head', 'cor_profile_subject_start' );
add_action( 'admin_footer', 'cor_profile_subject_end' );

Novamente, se você souber com antecedência qual será o idioma da sua instalação do WP, altere a Personal Optionsstring para a versão localizada do seu idioma; por exemplo, em italiano, você a substituirá Impostazioni personali.

Emanuele Feliziani
fonte
0

Usando

$subject = preg_replace( '#<h3>'.__("Personal Options").'</h3>.+?/table>#s', '', $subject, 1 );

na função cor_remove_personal_options, ela também está localizada.

user3252207
fonte
0

Encontrei esta solução em: https://premium.wpmudev.org/blog/how-to-simplify-wordpress-profiles-by-removing-personal-options/?ptm=c&utm_expid=3606929-108.O6f5ypXuTg-XPCV9sY1yrw .2

function hide_personal_options(){ 
    echo "\n" . '<script type="text/javascript">jQuery(document).ready(function($) { 
    $(\'form#your-profile > h3:first\').hide(); $(\'form#your-profile > 
    table:first\').hide(); $(\'form#your-profile\').show(); });</script>' . "\n"; 
} 
add_action('admin_head','hide_personal_options');

Se você deseja ser mais específico ou remover mais, consulte aqui: https://isabelcastillo.com/hide-personal-options-wordpress-admin-profile

Você pode apenas adicionar essas linhas na função.

K. Tromp
fonte
Removê-lo com Javascript nunca é uma boa prática ...
Marcos Buarque