Code Duplication    Length = 39-42 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

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