| @@ 130-172 (lines=43) @@ | ||
| 127 | * | |
| 128 | * @return boolean True if the version of Gutenberg required by the block or plugin is available. | |
| 129 | */ | |
| 130 | 	public static function is_gutenberg_version_available( $version_requirements, $slug ) { | |
| 131 | global $wp_version; | |
| 132 | ||
| 133 | // Bail if we don't at least have the Gutenberg version requirement, the WP version is optional. | |
| 134 | 		if ( empty( $version_requirements['gutenberg'] ) ) { | |
| 135 | return false; | |
| 136 | } | |
| 137 | ||
| 138 | // If running a local dev build of Gutenberg plugin GUTENBERG_DEVELOPMENT_MODE is set so assume correct version. | |
| 139 | 		if ( defined( 'GUTENBERG_DEVELOPMENT_MODE' ) && GUTENBERG_DEVELOPMENT_MODE ) { | |
| 140 | return true; | |
| 141 | } | |
| 142 | ||
| 143 | $version_available = false; | |
| 144 | ||
| 145 | // If running a production build of the Gutenberg plugin then GUTENBERG_VERSION is set, otherwise if WP version | |
| 146 | // with required version of Gutenberg is known check that. | |
| 147 | 		if ( defined( 'GUTENBERG_VERSION' ) ) { | |
| 148 | $version_available = version_compare( GUTENBERG_VERSION, $version_requirements['gutenberg'], '>=' ); | |
| 149 | 		} elseif ( ! empty( $version_requirements['wp'] ) ) { | |
| 150 | $version_available = version_compare( $wp_version, $version_requirements['wp'], '>=' ); | |
| 151 | } | |
| 152 | ||
| 153 | if ( | |
| 154 | ! $version_available | |
| 155 | && class_exists( Jetpack_Gutenberg::class ) // This is only useful in Jetpack. | |
| 156 | 		) { | |
| 157 | Jetpack_Gutenberg::set_extension_unavailable( | |
| 158 | $slug, | |
| 159 | 'incorrect_gutenberg_version', | |
| 160 | array( | |
| 161 | 'required_feature' => $slug, | |
| 162 | 'required_version' => $version_requirements, | |
| 163 | 'current_version' => array( | |
| 164 | 'wp' => $wp_version, | |
| 165 | 'gutenberg' => defined( 'GUTENBERG_VERSION' ) ? GUTENBERG_VERSION : null, | |
| 166 | ), | |
| 167 | ) | |
| 168 | ); | |
| 169 | } | |
| 170 | ||
| 171 | return $version_available; | |
| 172 | } | |
| 173 | ||
| 174 | /** | |
| 175 | * Get CSS classes for a block. | |
| @@ 98-137 (lines=40) @@ | ||
| 95 | * | |
| 96 | * @return boolean True if the version of gutenberg required by the block or plugin is available. | |
| 97 | */ | |
| 98 | 	public static function is_gutenberg_version_available( $version_requirements, $slug ) { | |
| 99 | global $wp_version; | |
| 100 | ||
| 101 | // Bail if we don't at least have the gutenberg version requirement, the WP version is optional. | |
| 102 | 		if ( empty( $version_requirements['gutenberg'] ) ) { | |
| 103 | return false; | |
| 104 | } | |
| 105 | ||
| 106 | // If running a local dev build of gutenberg plugin GUTENBERG_DEVELOPMENT_MODE is set so assume correct version. | |
| 107 | 		if ( defined( 'GUTENBERG_DEVELOPMENT_MODE' ) && GUTENBERG_DEVELOPMENT_MODE ) { | |
| 108 | return true; | |
| 109 | } | |
| 110 | ||
| 111 | $version_available = false; | |
| 112 | ||
| 113 | // If running a production build of the gutenberg plugin then GUTENBERG_VERSION is set, otherwise if WP version | |
| 114 | // with required version of Gutenberg is known check that. | |
| 115 | 		if ( defined( 'GUTENBERG_VERSION' ) ) { | |
| 116 | $version_available = version_compare( GUTENBERG_VERSION, $version_requirements['gutenberg'], '>=' ); | |
| 117 | 		} elseif ( ! empty( $version_requirements['wp'] ) ) { | |
| 118 | $version_available = version_compare( $wp_version, $version_requirements['wp'], '>=' ); | |
| 119 | } | |
| 120 | ||
| 121 | 		if ( ! $version_available ) { | |
| 122 | self::set_extension_unavailable( | |
| 123 | $slug, | |
| 124 | 'incorrect_gutenberg_version', | |
| 125 | array( | |
| 126 | 'required_feature' => $slug, | |
| 127 | 'required_version' => $version_requirements, | |
| 128 | 'current_version' => array( | |
| 129 | 'wp' => $wp_version, | |
| 130 | 'gutenberg' => defined( 'GUTENBERG_VERSION' ) ? GUTENBERG_VERSION : null, | |
| 131 | ), | |
| 132 | ) | |
| 133 | ); | |
| 134 | } | |
| 135 | ||
| 136 | return $version_available; | |
| 137 | } | |
| 138 | ||
| 139 | /** | |
| 140 | * Prepend the 'jetpack/' prefix to a block name | |