Agregar advertencia para editar el botón slug / permalink en la pantalla del editor.

4

Quiero que los usuarios obtengan una ventana emergente de advertencia cuando hacen clic en el botón para cambiar el enlace permanente. Darán la confirmación si quieren continuar.

Esto es lo que he encontrado:

//Setting a variable for the button Class.
var editSlug = document.getElementsByClassName("edit-slug");

//Detecting when the button is clicked.
editSlug[0].addEventListener ( "click", function() {

//Returning the value of the popup.
return confirm('Warning: Don't do this unless you have to.');

});

El problema que tengo, es incluso cuando hago clic en cancelar, todavía me permite editar el enlace de mi publicación. Si selecciono cancelar, se supone que devuelve un valor falso y cancela el evento de hacer clic en el botón de edición. Esto funciona bien para otros botones en WP, como publicar, actualizar, etc.

También puedo generar la ventana emergente una vez que se carga la página, si selecciono una respuesta y hago clic en editar nuevamente, no recibo más ventanas emergentes.

    
pregunta Snake 22.12.2016 - 00:18

1 respuesta

4

WordPress ya ha conectado eventos jQuery a ese botón que podría omitir con el método off() , o mantener las cosas simples y agregue una superposición encima de ese botón y actúe como el botón, solicitando a los usuarios que confirmen la acción de edición en primer lugar:

jQuery(document).ready(function($){
    var c = $('#edit-slug-buttons')
      , b = $('button',c).first();

    c.css({
        position: 'relative'
    }).append('<span class="se-overlay" style=" position: absolute; top: 0; left: 0; width: 100%; height: 100%; padding: 4px 0; margin-top: -3px; cursor: pointer"></span>');


    $(document).on("click", "#edit-slug-buttons .se-overlay", function(e){
        if ( confirm("Warning: Don't do this unless you have to.") ) {
            $(this).closest('#edit-slug-buttons').children('button').first().trigger('click');
        }
        return e.preventDefault();
    });
});

Espero que ayude.

    
respondido por el Samuel Elh 22.12.2016 - 00:39

Lea otras preguntas en las etiquetas