Code Duplication    Length = 39-44 lines in 2 locations

class.jetpack-gutenberg.php 1 location

@@ 24-62 (lines=39) @@
21
 *
22
 * @return WP_Block_Type|false The registered block type on success, or false on failure.
23
 */
24
function jetpack_register_block( $slug, $args = array() ) {
25
	if ( 0 !== strpos( $slug, 'jetpack/' ) && ! strpos( $slug, '/' ) ) {
26
		_doing_it_wrong( 'jetpack_register_block', 'Prefix the block with jetpack/ ', '7.1.0' );
27
		$slug = 'jetpack/' . $slug;
28
	}
29
30
	if ( isset( $args['version_requirements'] )
31
		&& ! Jetpack_Gutenberg::is_gutenberg_version_available( $args['version_requirements'], $slug ) ) {
32
		return false;
33
	}
34
35
	// Checking whether block is registered to ensure it isn't registered twice.
36
	if ( Jetpack_Gutenberg::is_registered( $slug ) ) {
37
		return false;
38
	}
39
40
	$feature_name = Jetpack_Gutenberg::remove_extension_prefix( $slug );
41
	// If the block is dynamic, and a Jetpack block, wrap the render_callback to check availability.
42
	if (
43
		isset( $args['plan_check'] )
44
		&& true === $args['plan_check']
45
	) {
46
		if ( isset( $args['render_callback'] ) ) {
47
			$args['render_callback'] = Jetpack_Gutenberg::get_render_callback_with_availability_check( $feature_name, $args['render_callback'] );
48
		}
49
		$method_name = 'set_availability_for_plan';
50
	} else {
51
		$method_name = 'set_extension_available';
52
	}
53
54
	add_action(
55
		'jetpack_register_gutenberg_extensions',
56
		function() use ( $feature_name, $method_name ) {
57
			call_user_func( array( 'Jetpack_Gutenberg', $method_name ), $feature_name );
58
		}
59
	);
60
61
	return register_block_type( $slug, $args );
62
}
63
64
/**
65
 * Helper function to register a Jetpack Gutenberg plugin

packages/blocks/src/class-blocks.php 1 location

@@ 40-83 (lines=44) @@
37
	 *
38
	 * @return WP_Block_Type|false The registered block type on success, or false on failure.
39
	 */
40
	public static function jetpack_register_block( $slug, $args = array() ) {
41
		if ( 0 !== strpos( $slug, 'jetpack/' ) && ! strpos( $slug, '/' ) ) {
42
			_doing_it_wrong( 'jetpack_register_block', 'Prefix the block with jetpack/ ', 'Jetpack 9.0.0' );
43
			$slug = 'jetpack/' . $slug;
44
		}
45
46
		if (
47
			isset( $args['version_requirements'] )
48
			&& ! self::is_gutenberg_version_available( $args['version_requirements'], $slug )
49
		) {
50
			return false;
51
		}
52
53
		// Checking whether block is registered to ensure it isn't registered twice.
54
		if ( self::is_registered( $slug ) ) {
55
			return false;
56
		}
57
58
		$feature_name = self::remove_extension_prefix( $slug );
59
60
		// This is only useful in Jetpack.
61
		if ( class_exists( Jetpack_Gutenberg::class ) ) {
62
			// If the block is dynamic, and a Jetpack block, wrap the render_callback to check availability.
63
			if (
64
				isset( $args['plan_check'] )
65
				&& true === $args['plan_check']
66
			) {
67
				if ( isset( $args['render_callback'] ) ) {
68
					$args['render_callback'] = Jetpack_Gutenberg::get_render_callback_with_availability_check( $feature_name, $args['render_callback'] );
69
				}
70
				$method_name = 'set_availability_for_plan';
71
			} else {
72
				$method_name = 'set_extension_available';
73
			}
74
75
			add_action(
76
				'jetpack_register_gutenberg_extensions',
77
				function() use ( $feature_name, $method_name ) {
78
					call_user_func( array( 'Jetpack_Gutenberg', $method_name ), $feature_name );
79
				}
80
			);
81
		}
82
		return register_block_type( $slug, $args );
83
	}
84
85
	/**
86
	 * Check if an extension/block is already registered