PluginProbe
Elementor Website Builder – more than just a page builder / 3.13.3
Elementor Website Builder – more than just a page builder v3.13.3
4.3.0-beta2 4.3.0-beta1 4.2.4 4.2.3 4.2.2 4.2.1 4.2.0 4.1.5 4.2.0-beta2 4.2.0-dev2 4.2.0-beta1 4.1.4 4.1.3 4.1.2 4.1.1 4.1.0 4.1.0-beta3 4.1.0-dev3 4.0.9 4.1.0-beta2 4.1.0-dev2 4.0.8 4.1.0-beta1 4.1.0-dev1 4.0.7 All 451 releases
← All changes | modules/gutenberg/module.php +4 -96 4.2.43.13.3 View file →
@@ -1,9 +1,8 @@
1 1 <?php
2 2 namespace Elementor\Modules\Gutenberg;
3 3
4 4 use Elementor\Core\Base\Module as BaseModule;
5 -use Elementor\Core\Experiments\Manager as Experiments_Manager;
6 5 use Elementor\Plugin;
7 6 use Elementor\User;
8 7 use Elementor\Utils;
9 8
@@ -38,14 +37,14 @@
38 37 */
39 38 public function register_elementor_rest_field() {
40 39 register_rest_field( get_post_types( '', 'names' ),
41 40 'gutenberg_elementor_mode', [
42 - 'update_callback' => function( $request_value, $obj ) {
43 - if ( ! User::is_current_user_can_edit( $obj->ID ) ) {
41 + 'update_callback' => function( $request_value, $object ) {
42 + if ( ! User::is_current_user_can_edit( $object->ID ) ) {
44 43 return false;
45 44 }
46 45
47 - $document = Plugin::$instance->documents->get( $obj->ID );
46 + $document = Plugin::$instance->documents->get( $object->ID );
48 47
49 48 if ( ! $document ) {
50 49 return false;
51 50 }
@@ -70,9 +69,9 @@
70 69 }
71 70
72 71 $this->is_gutenberg_editor_active = true;
73 72
74 - $suffix = Utils::is_script_debug() ? '' : '.min';
73 + $suffix = defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ? '' : '.min';
75 74
76 75 wp_enqueue_script( 'elementor-gutenberg', ELEMENTOR_ASSETS_URL . 'js/gutenberg' . $suffix . '.js', [ 'jquery' ], ELEMENTOR_VERSION, true );
77 76
78 77 $elementor_settings = [
@@ -124,19 +123,8 @@
124 123 </div>
125 124 </div>
126 125 </div>
127 126 </script>
128 -
129 - <script id="elementor-gutenberg-button-tmpl" type="text/html">
130 - <div id="elementor-edit-button-gutenberg">
131 - <button id="elementor-edit-mode-button" type="button" class="button button-primary button-large">
132 - <span class="elementor-edit-mode-gutenberg">
133 - <i class="eicon-elementor-square" aria-hidden="true"></i>
134 - <?php echo esc_html__( 'Edit with Elementor', 'elementor' ); ?>
135 - </span>
136 - </button>
137 - </div>
138 - </script>
139 127 <?php
140 128 }
141 129
142 130 /**
@@ -146,86 +134,6 @@
146 134 public function __construct() {
147 135 add_action( 'rest_api_init', [ $this, 'register_elementor_rest_field' ] );
148 136 add_action( 'enqueue_block_editor_assets', [ $this, 'enqueue_assets' ] );
149 137 add_action( 'admin_footer', [ $this, 'print_admin_js_template' ] );
150 - add_action( 'wp_enqueue_scripts', [ $this, 'dequeue_assets' ], 999 );
151 - }
152 -
153 - public function dequeue_assets() {
154 - if ( ! static::is_optimized_gutenberg_loading_enabled() ) {
155 - return;
156 - }
157 -
158 - if ( ! static::should_dequeue_gutenberg_assets() ) {
159 - return;
160 - }
161 -
162 - wp_dequeue_style( 'wp-block-library' );
163 - wp_dequeue_style( 'wp-block-library-theme' );
164 - wp_dequeue_style( 'wc-block-style' );
165 - wp_dequeue_style( 'wc-blocks-style' );
166 - }
167 -
168 - /**
169 - * Check whether the "Optimized Gutenberg Loading" settings is enabled.
170 - *
171 - * The 'elementor_optimized_gutenberg_loading' option can be enabled/disabled from the Elementor settings.
172 - * For BC, when the option has not been saved in the database, the default '1' value is returned.
173 - *
174 - * @since 3.21.0
175 - * @access private
176 - */
177 - private static function is_optimized_gutenberg_loading_enabled(): bool {
178 - return (bool) get_option( 'elementor_optimized_gutenberg_loading', '1' );
179 - }
180 -
181 - private static function should_dequeue_gutenberg_assets(): bool {
182 - $post = get_post();
183 -
184 - if ( empty( $post->ID ) ) {
185 - return false;
186 - }
187 -
188 - if ( ! static::is_built_with_elementor( $post ) ) {
189 - return false;
190 - }
191 -
192 - if ( static::is_gutenberg_in_post( $post ) ) {
193 - return false;
194 - }
195 -
196 - return true;
197 - }
198 -
199 - private static function is_built_with_elementor( $post ): bool {
200 - $document = Plugin::$instance->documents->get( $post->ID );
201 -
202 - if ( ! $document || ! $document->is_built_with_elementor() ) {
203 - return false;
204 - }
205 -
206 - return true;
207 - }
208 -
209 - private static function is_gutenberg_in_post( $post ): bool {
210 - if ( has_blocks( $post ) ) {
211 - return true;
212 - }
213 -
214 - if ( static::current_theme_is_fse_theme() ) {
215 - return true;
216 - }
217 -
218 - return false;
219 - }
220 -
221 - private static function current_theme_is_fse_theme(): bool {
222 - if ( function_exists( 'wp_is_block_theme' ) ) {
223 - return (bool) wp_is_block_theme();
224 - }
225 - if ( function_exists( 'gutenberg_is_fse_theme' ) ) {
226 - return (bool) gutenberg_is_fse_theme();
227 - }
228 -
229 - return false;
230 138 }
231 139 }