PluginProbe
Elementor Website Builder – more than just a page builder / 3.23.0-dev3
Elementor Website Builder – more than just a page builder v3.23.0-dev3
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 | core/editor/editor.php +32 -23 4.1.23.23.0-dev3 View file →
@@ -5,8 +5,9 @@
5 5 use Elementor\Core\Common\Modules\Ajax\Module;
6 6 use Elementor\Core\Debug\Loading_Inspection_Manager;
7 7 use Elementor\Core\Editor\Loader\Editor_Loader_Factory;
8 8 use Elementor\Core\Editor\Loader\Editor_Loader_Interface;
9 +use Elementor\Core\Experiments\Manager as Experiments_Manager;
9 10 use Elementor\Core\Settings\Manager as SettingsManager;
10 11 use Elementor\Plugin;
11 12 use Elementor\TemplateLibrary\Source_Local;
12 13 use Elementor\Utils;
@@ -30,8 +31,10 @@
30 31 * User capability required to access Elementor editor.
31 32 */
32 33 const EDITING_CAPABILITY = 'edit_posts';
33 34
35 + const EDITOR_V2_EXPERIMENT_NAME = 'editor_v2';
36 +
34 37 /**
35 38 * Post ID.
36 39 *
37 40 * Holds the ID of the current post being edited.
@@ -80,11 +83,11 @@
80 83 *
81 84 * @since 1.0.0
82 85 * @access public
83 86 *
84 - * @param bool $to_die Optional. Whether to die at the end. Default is `true`.
87 + * @param bool $die Optional. Whether to die at the end. Default is `true`.
85 88 */
86 - public function init( $to_die = true ) {
89 + public function init( $die = true ) {
87 90 if ( empty( $_REQUEST['post'] ) ) {
88 91 return;
89 92 }
90 93
@@ -159,9 +162,9 @@
159 162
160 163 $this->get_loader()->print_root_template();
161 164
162 165 // From the action it's an empty string, from tests its `false`
163 - if ( false !== $to_die ) {
166 + if ( false !== $die ) {
164 167 die;
165 168 }
166 169 }
167 170
@@ -534,34 +537,16 @@
534 537
535 538 add_action( 'admin_action_elementor', [ $this, 'init' ] );
536 539 add_action( 'template_redirect', [ $this, 'redirect_to_new_url' ] );
537 540
541 + $this->register_editor_v2_experiment();
542 +
538 543 // Handle autocomplete feature for URL control.
539 544 add_filter( 'wp_link_query_args', [ $this, 'filter_wp_link_query_args' ] );
540 545 add_filter( 'wp_link_query', [ $this, 'filter_wp_link_query' ] );
541 -
542 - add_filter( 'replace_editor', [ $this, 'filter_replace_editor' ], 10, 2 );
543 546 }
544 547
545 548 /**
546 - * Signals to WordPress that Elementor is replacing the block editor on its own editor page,
547 - * so that block-editor-specific behaviour (e.g. WP 7.0 COOP/COEP isolation headers) is not
548 - * applied when the Elementor editor is active.
549 - *
550 - * @param bool $replace Whether the editor is being replaced.
551 - * @param \WP_Post $post The post being edited.
552 - *
553 - * @return bool
554 - */
555 - public function filter_replace_editor( $replace, $post ) {
556 - if ( isset( $_REQUEST['action'] ) && 'elementor' === $_REQUEST['action'] ) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended
557 - return true;
558 - }
559 -
560 - return $replace;
561 - }
562 -
563 - /**
564 549 * @since 2.2.0
565 550 * @access public
566 551 */
567 552 public function filter_wp_link_query_args( $query ) {
@@ -610,8 +595,32 @@
610 595 $this->loader->init();
611 596 }
612 597
613 598 return $this->loader;
599 + }
600 +
601 + /**
602 + * Adding Editor V2 experiment.
603 + *
604 + * @return void
605 + * @throws \Exception
606 + */
607 + private function register_editor_v2_experiment() {
608 + Plugin::$instance->experiments->add_feature( [
609 + 'name' => static::EDITOR_V2_EXPERIMENT_NAME,
610 + 'title' => esc_html__( 'Editor Top Bar', 'elementor' ),
611 + 'description' => sprintf(
612 + '%1$s <a href="https://go.elementor.com/wp-dash-elementor-top-bar/" target="_blank">%2$s</a>',
613 + esc_html__( 'Get a sneak peek of the new Editor powered by React. The beautiful design and experimental layout of the Top bar are just some of the exciting tools on their way.', 'elementor' ),
614 + esc_html__( 'Learn more', 'elementor' )
615 + ),
616 + 'default' => Experiments_Manager::STATE_INACTIVE,
617 + 'release_status' => Experiments_Manager::RELEASE_STATUS_BETA,
618 + 'new_site' => [
619 + 'default_active' => true,
620 + 'minimum_installation_version' => '3.23.0',
621 + ],
622 + ] );
614 623 }
615 624
616 625 /**
617 626 * Get elements presets.