PluginProbe
Elementor Website Builder – more than just a page builder / 3.4.8
Elementor Website Builder – more than just a page builder v3.4.8
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/admin-top-bar/module.php +38 -78 4.2.0-dev23.4.8 View file →
@@ -1,12 +1,11 @@
1 1 <?php
2 2 namespace Elementor\Modules\AdminTopBar;
3 3
4 -use Elementor\Core\Admin\Admin;
5 -use Elementor\Core\Utils\Promotions\Filtered_Promotions_Manager;
6 -use Elementor\Plugin;
7 4 use Elementor\Core\Base\App as BaseApp;
5 +use Elementor\Core\Experiments\Manager;
8 6 use Elementor\Utils;
7 +use Elementor\Plugin;
9 8
10 9 if ( ! defined( 'ABSPATH' ) ) {
11 10 exit; // Exit if accessed directly.
12 11 }
@@ -19,8 +18,20 @@
19 18 public static function is_active() {
20 19 return is_admin();
21 20 }
22 21
22 + public static function get_experimental_data() {
23 + return [
24 + 'name' => 'admin-top-bar',
25 + 'title' => esc_html__( 'Admin Top Bar', 'elementor' ),
26 + 'description' => esc_html__( 'Adds a top bar to elementors pages in admin area.', 'elementor' ),
27 + 'release_status' => Manager::RELEASE_STATUS_BETA,
28 + 'new_site' => [
29 + 'default_active' => true,
30 + ],
31 + ];
32 + }
33 +
23 34 /**
24 35 * @return string
25 36 */
26 37 public function get_name() {
@@ -37,30 +48,18 @@
37 48 /**
38 49 * Enqueue admin scripts
39 50 */
40 51 private function enqueue_scripts() {
41 - wp_enqueue_style( 'elementor-admin-top-bar-fonts', 'https://fonts.googleapis.com/css2?family=Roboto:wght@400;500;700&display=swap', [], ELEMENTOR_VERSION );
52 + wp_enqueue_style( 'elementor-admin-top-bar-fonts', 'https://fonts.googleapis.com/css2?family=Roboto&display=swap', [], ELEMENTOR_VERSION );
42 53
43 - wp_enqueue_style( 'elementor-admin-top-bar', $this->get_css_assets_url( 'admin-top-bar' ), [], ELEMENTOR_VERSION );
54 + wp_enqueue_style( 'elementor-admin-top-bar', $this->get_css_assets_url( 'admin-top-bar', null, 'default', true ), [], ELEMENTOR_VERSION );
44 55
45 - /**
46 - * Before admin top bar enqueue scripts.
47 - *
48 - * Fires before Elementor admin top bar scripts are enqueued.
49 - *
50 - * @since 3.19.0
51 - */
52 - do_action( 'elementor/admin_top_bar/before_enqueue_scripts', $this );
53 -
54 56 wp_enqueue_script( 'elementor-admin-top-bar', $this->get_js_assets_url( 'admin-top-bar' ), [
55 57 'elementor-common',
56 58 'react',
57 59 'react-dom',
58 - 'tipsy',
59 60 ], ELEMENTOR_VERSION, true );
60 61
61 - wp_set_script_translations( 'elementor-admin-top-bar', 'elementor' );
62 -
63 62 $min_suffix = Utils::is_script_debug() ? '' : '.min';
64 63
65 64 wp_enqueue_script( 'tipsy', ELEMENTOR_ASSETS_URL . 'lib/tipsy/tipsy' . $min_suffix . '.js', [
66 65 'jquery',
@@ -68,57 +67,8 @@
68 67
69 68 $this->print_config();
70 69 }
71 70
72 - private function add_frontend_settings() {
73 - $settings = [];
74 - $settings['is_administrator'] = current_user_can( 'manage_options' );
75 -
76 - // TODO: Find a better way to add apps page url to the admin top bar.
77 - $settings['apps_url'] = admin_url( 'admin.php?page=elementor-apps' );
78 - $settings['promotion'] = [
79 - 'text' => __( 'Upgrade Now', 'elementor' ),
80 - 'url' => 'https://go.elementor.com/wp-dash-admin-top-bar-upgrade/',
81 - ];
82 -
83 - $settings['promotion'] = Filtered_Promotions_Manager::get_filtered_promotion_data(
84 - $settings['promotion'],
85 - 'elementor/admin_top_bar/go_pro_promotion',
86 - 'url'
87 - );
88 -
89 - $current_screen = get_current_screen();
90 -
91 - /** @var \Elementor\Core\Common\Modules\Connect\Apps\Library $library */
92 - $library = Plugin::$instance->common->get_component( 'connect' )->get_app( 'library' );
93 - if ( $library ) {
94 - $settings = array_merge( $settings, [
95 - 'is_user_connected' => $library->is_connected(),
96 - 'connect_url' => $library->get_admin_url( 'authorize', [
97 - 'utm_source' => 'top-bar',
98 - 'utm_medium' => 'wp-dash',
99 - 'utm_campaign' => 'connect-account',
100 - 'utm_content' => $current_screen->id,
101 - 'source' => 'generic',
102 - ] ),
103 - ] );
104 - }
105 -
106 - $this->set_settings( $settings );
107 -
108 - do_action( 'elementor/admin-top-bar/init', $this );
109 - }
110 -
111 - private function is_top_bar_active() {
112 - $current_screen = get_current_screen();
113 -
114 - return apply_filters(
115 - 'elementor/admin-top-bar/is-active',
116 - Admin::is_elementor_admin_page( $current_screen ),
117 - $current_screen
118 - );
119 - }
120 -
121 71 /**
122 72 * Module constructor.
123 73 */
124 74 public function __construct() {
@@ -123,21 +73,31 @@
123 73 */
124 74 public function __construct() {
125 75 parent::__construct();
126 76
127 - add_action( 'current_screen', function () {
128 - if ( ! $this->is_top_bar_active() ) {
129 - return;
77 + add_action( 'in_admin_header', function () {
78 + $this->render_admin_top_bar();
79 + } );
80 +
81 + add_action( 'admin_enqueue_scripts', function () {
82 + $this->enqueue_scripts();
83 + } );
84 +
85 + add_action( 'elementor/init', function () {
86 + $settings = [];
87 + $settings['is_administrator'] = current_user_can( 'manage_options' );
88 +
89 + /** @var \Elementor\Core\Common\Modules\Connect\Apps\Library $library */
90 + $library = Plugin::$instance->common->get_component( 'connect' )->get_app( 'library' );
91 + if ( $library ) {
92 + $settings = array_merge( $settings, [
93 + 'is_user_connected' => $library->is_connected(),
94 + 'connect_url' => $library->get_admin_url( 'authorize' ),
95 + ] );
130 96 }
131 97
132 - $this->add_frontend_settings();
98 + $this->set_settings( $settings );
133 99
134 - add_action( 'in_admin_header', function () {
135 - $this->render_admin_top_bar();
136 - } );
137 -
138 - add_action( 'admin_enqueue_scripts', function () {
139 - $this->enqueue_scripts();
140 - } );
141 - } );
100 + do_action( 'elementor/admin-top-bar/init', $this );
101 + }, 12 /* After component 'connect' register the apps */ );
142 102 }
143 103 }