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