diff --git src/bp-core/bp-core-blocks.php src/bp-core/bp-core-blocks.php
index 96bb0aa32..85217e4ce 100644
--- src/bp-core/bp-core-blocks.php
+++ src/bp-core/bp-core-blocks.php
@@ -162,3 +162,51 @@ add_filter( 'block_editor_rest_api_preload_paths', 'bp_blocks_preload_paths' );
 function bp_register_block( $args = array() ) {
 	return new BP_Block( $args );
 }
+
+/**
+ * Gets a Widget Block list of classnames.
+ *
+ * @since 9.0.0
+ *
+ * @param string $block_name The Block name.
+ * @return array The list of widget classnames for the Block.
+ */
+function bp_blocks_get_widget_block_classnames( $block_name = '' ) {
+	$components         = bp_core_get_active_components( array(), 'objects' );
+	$components['core'] = buddypress()->core;
+	$classnames         = array();
+
+	foreach ( $components as $component ) {
+		if ( isset( $component->block_globals[ $block_name ] ) ) {
+			$block_props = $component->block_globals[ $block_name ]->props;
+
+			if ( isset( $block_props['widget_classnames'] ) && $block_props['widget_classnames'] ) {
+				$classnames = (array) $block_props['widget_classnames'];
+				break;
+			}
+		}
+	}
+
+	return $classnames;
+}
+
+/**
+ * Make sure the BP Widget Block classnames are included into Widget Blocks.
+ *
+ * @since 9.0.0
+ *
+ * @param string $classname The classname to be used in the block widget's container HTML.
+ * @param string $block_name The name of the block.
+ * @return string The classname to be used in the block widget's container HTML.
+ */
+function bp_widget_block_dynamic_classname( $classname, $block_name ) {
+	$bp_classnames = bp_blocks_get_widget_block_classnames( $block_name );
+
+	if ( $bp_classnames ) {
+		$bp_classnames = array_map( 'sanitize_html_class', $bp_classnames );
+		$classname    .= ' ' . implode( ' ', $bp_classnames );
+	}
+
+	return $classname;
+}
+add_filter( 'widget_block_dynamic_classname', 'bp_widget_block_dynamic_classname', 10, 2 );
diff --git src/bp-core/bp-core-template.php src/bp-core/bp-core-template.php
index f5655279e..0961c0805 100644
--- src/bp-core/bp-core-template.php
+++ src/bp-core/bp-core-template.php
@@ -3872,7 +3872,7 @@ function bp_is_widget_block_active( $block_name = '', $widget_id_base = '' ) {
 		'block'  => false,
 	);
 
-	if ( $block_name ) {
+	if ( $block_name && bp_is_running_wp( '5.0.0', '>=' ) ) {
 		$widget_blocks = get_option( 'widget_block', array() );
 		$sidebars      = wp_get_sidebars_widgets();
 
diff --git src/bp-core/classes/class-bp-component.php src/bp-core/classes/class-bp-component.php
index 23ef1cbc5..b1b13341f 100644
--- src/bp-core/classes/class-bp-component.php
+++ src/bp-core/classes/class-bp-component.php
@@ -140,6 +140,15 @@ class BP_Component {
 	 */
 	public $search_query_arg = 's';
 
+	/**
+	 * An array of globalized data for BP Blocks.
+	 *
+	 * @since 9.0.0
+	 *
+	 * @var array
+	 */
+	public $block_globals = array();
+
 	/** Methods ***************************************************************/
 
 	/**
@@ -205,7 +214,7 @@ class BP_Component {
 	 * Set up component global variables.
 	 *
 	 * @since 1.5.0
-	 *
+	 * @since 9.0.0 Adds the `$block_globals` argument to the `$args` parameter.
 	 *
 	 * @param array $args {
 	 *     All values are optional.
@@ -221,6 +230,7 @@ class BP_Component {
 	 *                                           'Search Groups...'.
 	 *     @type array    $global_tables         Optional. An array of database table names.
 	 *     @type array    $meta_tables           Optional. An array of metadata table names.
+	 *     @type array    $block_globals         Optional. An array of globalized data for BP Blocks.
 	 * }
 	 */
 	public function setup_globals( $args = array() ) {
@@ -241,6 +251,7 @@ class BP_Component {
 			'search_string'         => '',
 			'global_tables'         => '',
 			'meta_tables'           => '',
+			'block_globals'         => array(),
 		) );
 
 		/**
@@ -307,6 +318,27 @@ class BP_Component {
 			$this->register_meta_tables( $r['meta_tables'] );
 		}
 
+		/**
+		 * Filters the $blocks global value.
+		 *
+		 * @since 9.0.0
+		 *
+		 * @param array $blocks a list of global properties for blocks keyed
+		 *                      by their corresponding block name.
+		 */
+		$block_globals = apply_filters( 'bp_' . $this->id . '_block_globals', $r['block_globals'] );
+		if ( is_array( $block_globals ) && array_filter( $block_globals ) ) {
+			foreach ( $block_globals as $block_name => $block_props ) {
+				$this->block_globals[ $block_name ] = new stdClass();
+
+				// Initialize an `items` property for Widget Block occurrences.
+				$this->block_globals[ $block_name ]->items = array();
+
+				// Set the global properties for the Block.
+				$this->block_globals[ $block_name ]->props = (array) $block_props;
+			}
+		}
+
 		/** BuddyPress *******************************************************
 		 */
 
diff --git tests/phpunit/assets/class-bptest-component.php tests/phpunit/assets/class-bptest-component.php
new file mode 100644
index 000000000..1b6c006a6
--- /dev/null
+++ tests/phpunit/assets/class-bptest-component.php
@@ -0,0 +1,37 @@
+<?php
+
+// Testing Component Class.
+class BPTest_Component extends BP_Component {
+	/**
+	 * Globals to test.
+	 *
+	 * @var array
+	 */
+	public $globals = array();
+
+	// Start the `test` component setup process.
+	public function __construct( $args = array() ) {
+		$r = wp_parse_args(
+			$args,
+			array(
+				'id'      => 'example',
+				'name'    => 'Example Component',
+				'globals' => array(
+					'slug' => 'example',
+				),
+			)
+		);
+
+		$this->globals = $r['globals'];
+
+		parent::start(
+			$r['id'],
+			$r['name']
+		);
+	}
+
+	// Setup Test Globals.
+	public function setup_globals( $args = array() ) {
+		parent::setup_globals( $this->globals );
+	}
+}
diff --git tests/phpunit/testcases/core/class-bp-component.php tests/phpunit/testcases/core/class-bp-component.php
index 29d226f37..4f249eca9 100644
--- tests/phpunit/testcases/core/class-bp-component.php
+++ tests/phpunit/testcases/core/class-bp-component.php
@@ -1,6 +1,7 @@
 <?php
 
 include_once BP_TESTS_DIR . '/assets/bp-rest-api-controllers.php';
+include_once BP_TESTS_DIR . '/assets/class-bptest-component.php';
 
 /**
  * @group core
@@ -68,4 +69,27 @@ class BP_Tests_BP_Component_TestCases extends BP_UnitTestCase {
 			'BP_REST_Attachments_Member_Cover_Endpoint',
 		) );
 	}
+
+	/**
+	 * @group bp_blocks
+	 */
+	public function test_component_block_globals() {
+		$expected = array(
+			'dynamic_widget_classname' => 'widget_example_classname',
+		);
+
+		$example = new BPTest_Component(
+			array(
+				'globals' => array(
+					'block_globals' => array(
+						'bp/example-block' => $expected,
+					)
+				),
+			)
+		);
+
+		do_action( 'bp_setup_globals' );
+
+		$this->assertEquals( $expected, $example->block_globals['bp/example-block']->props );
+	}
 }
