Update elementor pro

This commit is contained in:
2026-03-26 14:00:57 +01:00
parent 6af83e92ed
commit aac5b2ea8e
400 changed files with 5807 additions and 1600 deletions

View File

@@ -9,23 +9,23 @@ if ( ! defined( 'ABSPATH' ) ) {
}
class Theme_Builder_Menu_Item implements Admin_Menu_Item {
public function get_capability() {
public function get_capability(): string {
return 'publish_posts';
}
public function get_label() {
public function get_label(): string {
return esc_html__( 'Theme Builder', 'elementor-pro' );
}
public function get_parent_slug() {
public function get_parent_slug(): string {
return Source_Local::ADMIN_MENU_SLUG;
}
public function is_visible() {
public function is_visible(): bool {
return true;
}
public function get_position() {
return null;
public function get_position(): ?int {
return 20;
}
}

View File

@@ -0,0 +1,68 @@
<?php
namespace ElementorPro\Modules\ThemeBuilder\EditorOneMenuItems;
use Elementor\Core\Admin\EditorOneMenu\Interfaces\Menu_Item_Third_Level_Interface;
use Elementor\Core\Admin\EditorOneMenu\Interfaces\Menu_Item_With_Custom_Url_Interface;
use Elementor\Modules\EditorOne\Classes\Menu_Config;
use Elementor\Plugin;
if ( ! defined( 'ABSPATH' ) ) {
exit;
}
class Editor_One_Theme_Builder_Menu_Item implements Menu_Item_Third_Level_Interface, Menu_Item_With_Custom_Url_Interface {
public function get_position(): int {
return 85; // After apps (Image Optimization=2, Accessibility=80), before Submissions (100)
}
public function get_slug(): string {
return 'elementor-theme-builder';
}
public function get_parent_slug(): string {
return Menu_Config::ELEMENTOR_HOME_MENU_SLUG;
}
public function get_label(): string {
return esc_html__( 'Theme Builder', 'elementor-pro' );
}
public function get_group_id(): string {
return Menu_Config::EDITOR_GROUP_ID;
}
public function get_capability(): string {
return 'publish_posts';
}
public function is_visible(): bool {
return true;
}
public function get_icon(): string {
return 'build';
}
public function has_children(): bool {
return false;
}
public function get_menu_url(): string {
$return_to = esc_url_raw( wp_unslash( $_SERVER['REQUEST_URI'] ?? '' ) );
return add_query_arg(
[
'return_to' => urlencode( $return_to ),
],
Plugin::instance()->app->get_base_url()
) . '#/site-editor';
}
public function get_page_title(): string {
return esc_html__( 'Theme Builder', 'elementor-pro' );
}
public function render(): void {
}
}

View File

@@ -7,14 +7,17 @@ use Elementor\Core\Admin\Menu\Admin_Menu_Manager;
use Elementor\Core\Admin\Menu\Main as MainMenu;
use Elementor\Core\App\App;
use Elementor\Core\Base\Document;
use Elementor\Modules\EditorOne\Classes\Menu_Config;
use Elementor\Modules\EditorOne\Classes\Menu_Data_Provider;
use Elementor\TemplateLibrary\Source_Local;
use Elementor\App\Modules\ImportExportCustomization\Utils as ImportExportCustomizationUtils;
use ElementorPro\Base\Editor_One_Trait;
use ElementorPro\Base\Module_Base;
use ElementorPro\Core\Utils;
use ElementorPro\Modules\ThemeBuilder\AdminMenuItems\Theme_Builder_Menu_Item;
use ElementorPro\Modules\ThemeBuilder\Classes;
use ElementorPro\Modules\ThemeBuilder\Documents\Single;
use ElementorPro\Modules\ThemeBuilder\Documents\Theme_Document;
use ElementorPro\Modules\ThemeBuilder\EditorOneMenuItems\Editor_One_Theme_Builder_Menu_Item;
use ElementorPro\Modules\ThemeBuilder\ImportExportCustomization;
use ElementorPro\Plugin;
@@ -23,10 +26,12 @@ if ( ! defined( 'ABSPATH' ) ) {
}
class Module extends Module_Base {
use Editor_One_Trait;
const ADMIN_LIBRARY_TAB_GROUP = 'theme';
const ADMIN_MENU_PRIORITY = 15;
const THEME_BUILDER_MENU_PRIORITY_BEFORE_SUBMISSIONS = 5;
public static function is_preview() {
return Plugin::elementor()->preview->is_preview_mode() || is_preview();
@@ -467,6 +472,10 @@ class Module extends Module_Base {
} );
} else {
add_action( 'elementor/admin/menu/register', function ( Admin_Menu_Manager $admin_menu ) {
if ( $this->is_editor_one_active() ) {
return;
}
$this->register_admin_menu_legacy( $admin_menu );
}, static::ADMIN_MENU_PRIORITY /* After "Popups" */ );
@@ -484,6 +493,10 @@ class Module extends Module_Base {
$this->get_admin_templates_url( true )
);
}, 22 /* After core promotion menu */ );
add_action( 'elementor/editor-one/menu/register', function ( Menu_Data_Provider $menu_data_provider ) {
$menu_data_provider->register_menu( new Editor_One_Theme_Builder_Menu_Item() );
}, static::THEME_BUILDER_MENU_PRIORITY_BEFORE_SUBMISSIONS );
}
add_filter( 'elementor/template-library/create_new_dialog_types', [ $this, 'create_new_dialog_types' ] );

View File

@@ -56,16 +56,16 @@ class Post_Content extends Base_Widget {
'label' => esc_html__( 'Alignment', 'elementor-pro' ),
'type' => Controls_Manager::CHOOSE,
'options' => [
'left' => [
'title' => esc_html__( 'Left', 'elementor-pro' ),
'start' => [
'title' => esc_html__( 'Start', 'elementor-pro' ),
'icon' => 'eicon-text-align-left',
],
'center' => [
'title' => esc_html__( 'Center', 'elementor-pro' ),
'icon' => 'eicon-text-align-center',
],
'right' => [
'title' => esc_html__( 'Right', 'elementor-pro' ),
'end' => [
'title' => esc_html__( 'End', 'elementor-pro' ),
'icon' => 'eicon-text-align-right',
],
'justify' => [
@@ -73,6 +73,11 @@ class Post_Content extends Base_Widget {
'icon' => 'eicon-text-align-justify',
],
],
'classes' => 'elementor-control-start-end',
'selectors_dictionary' => [
'left' => is_rtl() ? 'end' : 'start',
'right' => is_rtl() ? 'start' : 'end',
],
'selectors' => [
'{{WRAPPER}}' => 'text-align: {{VALUE}};',
],

View File

@@ -79,16 +79,16 @@ class Post_Excerpt extends Base_Widget {
'label' => esc_html__( 'Alignment', 'elementor-pro' ),
'type' => Controls_Manager::CHOOSE,
'options' => [
'left' => [
'title' => esc_html__( 'Left', 'elementor-pro' ),
'start' => [
'title' => esc_html__( 'Start', 'elementor-pro' ),
'icon' => 'eicon-text-align-left',
],
'center' => [
'title' => esc_html__( 'Center', 'elementor-pro' ),
'icon' => 'eicon-text-align-center',
],
'right' => [
'title' => esc_html__( 'Right', 'elementor-pro' ),
'end' => [
'title' => esc_html__( 'End', 'elementor-pro' ),
'icon' => 'eicon-text-align-right',
],
'justify' => [
@@ -96,6 +96,11 @@ class Post_Excerpt extends Base_Widget {
'icon' => 'eicon-text-align-justify',
],
],
'classes' => 'elementor-control-start-end',
'selectors_dictionary' => [
'left' => is_rtl() ? 'end' : 'start',
'right' => is_rtl() ? 'start' : 'end',
],
'selectors' => [
"{{WRAPPER}}{$widget_container_selector}" => 'text-align: {{VALUE}};',
],