wp-shortcake / shortcake

Shortcake makes using WordPress shortcodes a piece of cake.
GNU General Public License v2.0
664 stars 143 forks source link

Add `send_to_editor` filter #681

Open goldenapples opened 7 years ago

goldenapples commented 7 years ago

Adds a filter which can be used for client-side validation of a shortcode before sending it to the editor. Basic concept for addressing issue #615; for discussion only at this point. (I think this needs some kind of syntactic sugar to help work with it, as the API this exposes doesn't follow any established conventions in the WP universe and isn't self-explanatory at all.)

@pySilver @marcin-lawrowski This seems like the bare minimum to make the use case you described in #615 possible.

Hooking into this and blocking sending the shortcode to the editor would be a matter of returning a rejected promise from that filter, like this:

wp.shortcake.hooks.addFilter( 'shortcode-ui.send_to_editor', 
    function( okToSend$, shortcode ) {
        console.log( shortcode );
        okToSend$.reject();
        return okToSend$;
    }
);

Any thoughts on making this easier to work with? I like the idea of registering validation methods in the shortcode_ui_register_for_shortcode function, but I'm torn as to whether they belong on the attributes, the shortcode as a whole, or both.

davisshaver commented 7 years ago

Re validation, my inclination is that shortcode-level validation would make the most sense and not limit any field-specific use cases.