Eliminar la sección de Opciones Personales del Perfil

20 abr 2012, 11:35:42
Vistas: 20.7K
Votos: 15

Quiero ocultar/eliminar las Opciones Personales en la página de administración Tu Perfil (wp-admin/profile.php).

Sé que existen soluciones para esto, pero utilizan jQuery para ocultar esta sección. Esto funciona, pero cuando un usuario tiene JavaScript desactivado en su navegador, volverá a mostrarse. Por lo tanto, no es una forma adecuada de eliminar las Opciones Personales.

¿Existe alguna manera de eliminar la sección de Opciones Personales directamente del código fuente HTML de la página? Esto significa sin utilizar jQuery ni trucos de CSS, ni modificación de archivos del núcleo.

3
Comentarios

Solo para agregar, si un usuario tiene JavaScript deshabilitado, hay mucho más que no podrá usar en WordPress. Pero aún así, hacerlo del lado del servidor es mucho mejor cuando es posible :)

Tim Malone Tim Malone
9 may 2016 06:55:11

Ten cuidado - mira la respuesta: https://wordpress.stackexchange.com/a/162277/33667

T.Todua T.Todua
4 dic 2018 13:20:13

Posible duplicado de ¿Cómo eliminar estos campos de la sección 'Perfil'?

T.Todua T.Todua
4 dic 2018 13:20:42
Todas las respuestas a la pregunta 10
4
25

Esto debería funcionar

// elimina las opciones del esquema de colores en `profile.php`
remove_action( 'admin_color_scheme_picker', 'admin_color_scheme_picker' );

if ( ! function_exists( 'cor_remove_personal_options' ) ) {
  /**
   * Elimina las opciones sobrantes 'Editor Visual', 'Atajos de Teclado' y 'Barra de Herramientas'.
   */
  function cor_remove_personal_options( $subject ) {
    $subject = preg_replace( '#<h3>Opciones Personales</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' );

Además, no olvides marcar tus preguntas anteriores como resueltas :)

20 abr 2012 19:13:09
Comentarios

esto es increíble, pero ¿cómo hago que funcione en WP 3.4? solo el selector de esquema de colores fue eliminado. probablemente porque no puedo encontrar los archivos admin_head-profile.php y admin_footer-profile.php en el núcleo. ¿alguna idea? muchas gracias.

Ana Ban Ana Ban
26 jun 2012 14:20:59

¿Estás seguro que no funciona? Acabo de usar esto en una instalación nueva y funcionó bien. Ten en cuenta que debes editar el código anterior si estás usando otro idioma. Además, aquí hay información sobre admin_head-profile.php y admin_footer-profile.php: http://codex.wordpress.org/Plugin_API/Action_Reference#Administrative_Actions

User User
26 jun 2012 21:46:05

@CorvanNoorloos Gracias por esto, ¿hay alguna manera de dejar la opción para permitirles verificar si quieren mostrar la barra de herramientas o no?

Greenhoe Greenhoe
17 may 2015 04:46:23

mi versión actual 6.0.2 usa h2 no h3, puede que necesite actualizar el preg_replace para eso

Kender Kender
22 sept 2022 18:53:01
2
11

La respuesta aceptada no funciona con la versión 4.8

A continuación presentamos un código actualizado y simplificado que debería funcionar con cualquier versión:

        // elimina las opciones de esquema de color del administrador
        remove_action( 'admin_color_scheme_picker', 'admin_color_scheme_picker' );

        // Elimina las opciones restantes de 'Editor Visual', 'Atajos de teclado' y 'Barra de herramientas'
        add_action( 'admin_head', function () {
            ob_start( function( $subject ) {
                $subject = preg_replace( '#<h[0-9]>'.__("Opciones personales").'</h[0-9]>.+?/table>#s', '', $subject, 1 );
                return $subject;
            });
        });

        add_action( 'admin_footer', function(){
            ob_end_flush();
        });     
16 jun 2017 16:41:57
Comentarios

+1 pero el mismo problema que con la respuesta aceptada, la cadena necesita ser localizada para que funcione con idiomas distintos al inglés.

Mark Kaplun Mark Kaplun
16 jun 2017 17:36:00

@MarkKaplun ¡tienes razón! Hice el cambio.

RafaSashi RafaSashi
16 jun 2017 18:50:41
2

Estaba intentando resolver esto y me encontré con esta respuesta. El código anterior de Cor van ya no funciona, pero con un pequeño cambio en el add_action, puede funcionar.

Todo lo que necesitas hacer es cambiar las últimas dos líneas de:

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

a

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

Entonces, el código final quedaría algo así:

if ( ! function_exists( 'cor_remove_personal_options' ) ) {
  /**
   * Elimina las opciones sobrantes 'Editor Visual', 'Atajos de teclado' y 'Barra de herramientas'.
   */
  function cor_remove_personal_options( $subject ) {
    $subject = preg_replace( '#<h3>Opciones Personales</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' );
24 may 2013 02:20:11
Comentarios

Buen seguimiento, este cambio al código original funcionó perfectamente.

Daniel Daniel
13 feb 2014 04:31:38

¿Podrías decirme cómo puedo eliminar más elementos <h3>? ¿Qué modificaciones del código anterior necesito?

Fabian Fabian
27 ene 2016 20:35:33
0

Gracias al comentario de @Per logré que funcione para la versión 4.5.2

    // elimina las opciones de esquema de color del administrador
    remove_action( 'admin_color_scheme_picker', 'admin_color_scheme_picker' );

    if ( ! function_exists( 'cor_remove_personal_options' ) ) {
        /**
        * Elimina las opciones sobrantes 'Editor Visual', 'Atajos de teclado' y 'Barra de herramientas'.
        */
        function cor_remove_personal_options( $subject ) {
            $subject = preg_replace( '#<h2>Opciones Personales</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' );`
7 jun 2016 14:50:45
0

Actualización para la versión 3.9, lo siguiente funciona:

add_action( 'admin_head', 'cor_profile_subject_start' );
add_action( 'admin_footer', 'cor_profile_subject_end' );
18 abr 2014 11:41:15
0

Aquí está mi solución CSS, probada en 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();
});
22 ago 2018 08:27:12
0

Solo quería aclarar que el código no funcionará para versiones localizadas de WordPress, debido a la cadena de texto fija Personal Options. No se me ocurre una solución fácil aquí, pero las sugerencias son bienvenidas.

Hubiera añadido esto como un comentario, pero no tengo suficiente reputación para agregar comentarios.

Aprovecho también para volver a pegar el código completo actualizado para la versión 3.9 de WordPress.

Aquí está:

// elimina las opciones de esquema de colores del admin en `profile.php`
remove_action( 'admin_color_scheme_picker', 'admin_color_scheme_picker' );

if ( ! function_exists( 'cor_remove_personal_options' ) ) {
  /**
   * Elimina las opciones sobrantes 'Editor Visual', 'Atajos de teclado' y 'Barra de herramientas'.
   */
  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' );

De nuevo, si sabes de antemano cuál será el idioma de tu instalación de WP, cambia la cadena Personal Options por la versión localizada de tu idioma, por ejemplo en italiano lo reemplazarías con Impostazioni personali.

9 ago 2014 20:29:08
0

Al usar

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

en la función cor_remove_personal_options, también está localizado.

3 sept 2015 19:17:41
1

Encontré esta solución en: 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');

Si deseas ser más específico o eliminar más elementos, deberías revisar aquí: https://isabelcastillo.com/hide-personal-options-wordpress-admin-profile

Puedes simplemente agregar esas líneas en la función.

17 jul 2017 14:56:11
Comentarios

Eliminarlo con Javascript nunca es una buena práctica...

Marcos Buarque Marcos Buarque
16 jul 2018 06:44:06
0

Yo elimino solo el título y uso CSS para ocultar la primera tabla...

Para mí, en 2023, esto funciona:

// elimina las opciones de esquema de color del administrador
    remove_action( 'admin_color_scheme_picker', 'admin_color_scheme_picker' );

    if ( ! function_exists( 'cor_remove_personal_options' ) ) {
        /**
        * Elimina las opciones sobrantes 'Editor Visual', 'Atajos de Teclado' y 'Barra de Herramientas'.
        */
        function cor_remove_personal_options( $subject ) {
           $subject = preg_replace( '#<h[0-9]>'.__("Opciones Personales").'</h[0-9]>#s', '<style>#your-profile>.form-table {display:none} #your-profile>.form-table ~ .form-table {display:block}</style>', $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' );
2 feb 2023 15:31:54