Settings -> Blocks * */ if ( ! defined( 'ABSPATH' ) ) exit; /** * Custom block catalog shown in Settings -> Blocks */ function tbkkt_settings_normalize_block_name( string $block_name ): string { $block_name = strtolower( trim( $block_name ) ); return preg_match( '/^[a-z0-9-]+\/[a-z0-9-]+$/', $block_name ) ? $block_name : ''; } function tbkkt_settings_get_blocks_catalog(): array { return array( 'tbkkt/container' => array( 'label' => __( 'Container', 'tms-block-kit' ), 'description' => __( 'Flexible layout wrapper with inner blocks, background media, and shape dividers.', 'tms-block-kit' ), ), 'tbkkt/icon' => array( 'label' => __( 'Advanced icon', 'tms-block-kit' ), 'description' => __( 'Standalone icon block with vector library support and optional image fallback.', 'tms-block-kit' ), ), ); } function tbkkt_settings_is_block_enabled( string $block_name ): bool { $block_name = tbkkt_settings_normalize_block_name( $block_name ); if ( $block_name === '' ) return false; $catalog = tbkkt_settings_get_blocks_catalog(); if ( ! isset( $catalog[ $block_name ] ) ) return false; $all = tbkkt_settings_get(); if ( isset( $all['blocks'][ $block_name ] ) ) : return (bool) $all['blocks'][ $block_name ]; endif; return true; }