Support

Account

Forum Replies Created

  • I am currently using the allowed_block_type filter to control the available blocks in my theme, similar to the following example:

    
    function acf_allowed_blocks($allowed_blocks, $post)
    {
        // Register core blocks
        $core_blocks = array(
            'core/buttons',
            'core/heading',
            'core/image',
            'core/list',
            'core/paragraph',
        );
    
        // Register custom blocks
        $custom_blocks = array(
            'acf/test-block',
        );
    
        // Register plugin specific blocks
        $plugin_blocks = array(
            'gravityforms/form',
        );
    
        // Specify block groupings available on specific post types
        switch ($post->post_type) {
        case 'post_type_example':
            $allowed_blocks = array_merge($core_blocks);
            break;
        default:
            $allowed_blocks = array_merge($core_blocks, $custom_blocks, $plugin_blocks);
        }
    
        return $allowed_blocks;
    }
    add_filter('allowed_block_types', 'acf_allowed_blocks', 10, 2);
    

    While this works perfectly, I am trying to determine whether or not it’s possible to remove the gravityforms/form block, but allow it inside the acf/test-block. Currently, if I remove the block from this function, it’s also becomes unavailable as an inner block in my ACF block markup, which looks like this:

    
    $allowed_blocks = array( 'gravityforms/form' );
    echo '<InnerBlocks allowedBlocks="' . esc_attr(wp_json_encode($allowed_blocks)) . '" />';
    

    Does anyone have any idea on whether or not this is even possible with the current state of Gutenberg? I can just as easily live with it being available as both a main and an inner block, but it would be my preference to only use it as an inner block.

  • @meneldil

    I had the same request on a recent client site, and I’m enqueuing a script into the admin area to generate a confirmation message when trying to delete a layout.

    ;(function($) {
        acf.add_action('ready', function(){
            $('body').on('click', '.acf-flexible-content [data-event=remove-layout]', function( e ){
                return confirm("Delete row?");
            });
        });
    }(jQuery));
  • Actually, this error was on my end, after searching through my code there was an item that should have been removed and was causing this.

Viewing 3 posts - 1 through 3 (of 3 total)