Eliminar la sección de opciones personales del perfil


11

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

Soy consciente de que existen soluciones para esto, pero yo uso jQuery para ocultar esta sección. Esto funciona, pero cuando un usuario tiene JavaScript deshabilitado en su navegador, volverá a aparecer. Por lo tanto, no es una forma adecuada de eliminar las Opciones personales.

¿Hay alguna forma de eliminar la sección Opciones personales de la fuente HTML de la página? Esto significa que no hay hacks de jQuery o CSS, ni modificación de archivos principales.


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 sea posible :)
Tim Malone

Tenga cuidado - vea la respuesta: wordpress.stackexchange.com/a/162277/33667
T.Todua

Respuestas:


24

Esto debería funcionar

// 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' );

Además, no olvide marcar sus preguntas anteriores como resueltas :)


Esto es increíble, pero ¿cómo puedo hacer que funcione para WP 3.4? solo se elimina el selector de combinación de colores. probablemente porque no puedo encontrar los archivos admin_head-profile.phpy admin_footer-profile.phpen el núcleo. ideas? muchas gracias.
Ana Ban

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

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

6

Solo estaba tratando de resolver esto y encontré esta respuesta. El código anterior de Cor van ya no funciona, pero con un ligero cambio de add_action, puede.

Todo lo que necesita hacer es cambiar las dos últimas 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 se vería así:

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' );

Buen seguimiento, este cambio en el código original funcionó perfectamente.
Daniel

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

5

La respuesta aceptada no funciona con 4.8

Aquí viene un código actualizado y simplificado que debería funcionar con cualquier versión:

        // 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();
        });     

1
+1 pero el mismo problema que con la respuesta aceptada, la cadena debe localizarse para que funcione con idiomas que no estén en inglés.
Mark Kaplun

@ MarkKaplun es cierto! Hice el cambio.
RafaSashi

3

Gracias al comentario de @Per lo hice funcionar para 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' );`

2

Actualización para 3.9, los siguientes trabajos:

add_action( 'admin_head', 'cor_profile_subject_start' );
add_action( 'admin_footer', 'cor_profile_subject_end' );

1

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();
});

0

Solo quería aclarar que el código no funcionará para versiones localizadas de WordPress, debido a la Personal Optionscadena codificada . No puedo pensar en ninguna solución fácil aquí, pero las sugerencias son bienvenidas.

Hubiera agregado esto como un comentario, pero no tengo suficiente reputación para agregar un comentario.

También aprovecho esta oportunidad para volver a pegar todo el código actualizado para WordPress versión 3.9.

Aquí 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' );

Nuevamente, si sabe de antemano cuál será el idioma de su instalación de WP, cambie la Personal Optionscadena a la versión localizada de su idioma, por ejemplo, en italiano, la reemplazará Impostazioni personali.


0

Mediante el uso

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

en la función cor_remove_personal_options, también se localiza.


0

He encontrado 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 desea ser más específico o eliminar más, debe echar un vistazo aquí: https://isabelcastillo.com/hide-personal-options-wordpress-admin-profile

Simplemente puede agregar esas líneas a la función.


Eliminarlo con Javascript nunca es una buena práctica ...
Marcos Buarque
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.