Desactiva los consejos de Gutenberg para siempre, no Gutenberg

11

Me gusta mucho Gutenberg, sin embargo, los consejos al comienzo de cada carga de página me vuelven loco. Me gustaría deshabilitar los consejos molestos para siempre a través del código.

No publique el complemento "Desactivar Gutenberg", ya lo he visto. Quiero hacerlo a través de un par de líneas de código en mi tema.

Debe haber un gancho, pero no pude encontrarlo. Gracias por una pista.

ingrese la descripción de la imagen aquí

usuario3135691
fuente

Respuestas:

12

ingrese la descripción de la imagen aquí

Actualización n. ° 1:

Después de preguntarle a @leymannx, verifiqué cómo se almacenan estas configuraciones. Resultó que la configuración no es permanente, se guarda en el navegador como localStorage.

key: WP_DATA_USER_{id}:
value: {
    "core/nux":{
        "preferences":{
            "areTipsEnabled":false,
            "dismissedTips":{}
        }
    },
    //"core/edit-post"
    //...

Actualización n. ° 2:

Los consejos de Gutenberg se pueden deshabilitar usando dispatch('core/nux').disableTips()( paquete NUX ) y gancho de acción enqueue_block_editor_assets.

archivo functions.php :

function se334561_editor_tips() {

    wp_enqueue_script(
        'se334561-js',
        // --- to use in plugin ---
        // plugins_url('/disable-tips.js', __FILE__),
        get_stylesheet_directory_uri() . '/disable-tips.js',
        array('wp-blocks')
    );
}
add_action('enqueue_block_editor_assets', 'se334561_editor_tips');

archivo disable-tips.js :

jQuery(document).ready(function(){
    var isVisible = wp.data.select('core/nux').areTipsEnabled()
    if (isVisible) {
        wp.data.dispatch('core/nux').disableTips();
    }
});
RMN
fuente
¿Es esto globalmente para cada usuario? ¿Hay alguna manera de configurar esto por código también? ¿De modo que cuando envío un complemento a un cliente, se desactivan los consejos cuando se activa este complemento?
leymannx
1
Si se trata de una casilla de verificación de opción en el área de administración, estarán lejos para alternarlo para todos, ya que los valores deben almacenarse en algún lugar donde debería en el código poder establecer ese valor para todos los usuarios en init o algo así, intente encontrar dónde almacena ese valor en el DB
Daniel Vickers
1
@leymannx Esto requeriría un código adicional (js + php) que, después de cambiar areTipsEnabled, escribe el estado en DB y lo restaura cuando el usuario inicia sesión.
nmr
1
Eso es increíble, lo probaré mañana y comprobaré la respuesta si funciona. ¡Gracias!
user3135691
1
@ user3135691 En el archivo de complemento reemplace get_stylesheet_directory_uri() . '/disable-tips.js' con plugins_url('/disable-tips.js', __FILE__).
RMN
2

Como descubrió @nmr, esto parece estar almacenado solo en el navegador. Aunque encontré una solución para simplemente ocultarlo a través de CSS. Rápido y sucio.

functions.php:

// Add backend styles for Gutenberg.
add_action('enqueue_block_editor_assets', 'gutenberg_editor_assets');

function gutenberg_editor_assets() {
  // Load the theme styles within Gutenberg.
  wp_enqueue_style('my-gutenberg-editor-styles', get_theme_file_uri('/assets/gutenberg-editor-styles.css'), FALSE);
}

assets/gutenberg-editor-styles.css:

.components-popover.nux-dot-tip {
  display: none !important;
}

Fuente: Creación de estilos de editor de temas para Gutenberg

leymannx
fuente
Sí, esta solución también me vino a la mente, pero como usted ha dicho: es rápida y sucia. Gracias por tu ayuda.
user3135691