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