PluginProbe
Elementor Website Builder – more than just a page builder / 3.3.0
Elementor Website Builder – more than just a page builder v3.3.0
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 +42 -76 4.2.23.3.0 View file →
@@ -1,11 +1,11 @@
1 1 <?php
2 +
2 3 namespace Elementor\Modules\AdminTopBar;
3 4
4 -use Elementor\Core\Admin\Admin;
5 -use Elementor\Core\Utils\Promotions\Filtered_Promotions_Manager;
5 +use Elementor\Core\Base\App as BaseApp;
6 +use Elementor\Core\Experiments\Manager;
6 7 use Elementor\Plugin;
7 -use Elementor\Core\Base\App as BaseApp;
8 8 use Elementor\Utils;
9 9
10 10 if ( ! defined( 'ABSPATH' ) ) {
11 11 exit; // Exit if accessed directly.
@@ -19,8 +19,20 @@
19 19 public static function is_active() {
20 20 return is_admin();
21 21 }
22 22
23 + public static function get_experimental_data() {
24 + return [
25 + 'name' => 'admin-top-bar',
26 + 'title' => __( 'Admin Top Bar', 'elementor' ),
27 + 'description' => __( 'Adds a top bar to elementors pages in admin area.', 'elementor' ),
28 + 'release_status' => Manager::RELEASE_STATUS_BETA,
29 + 'new_site' => [
30 + 'default_active' => true,
31 + ],
32 + ];
33 + }
34 +
23 35 /**
24 36 * @return string
25 37 */
26 38 public function get_name() {
@@ -32,35 +44,28 @@
32 44 <div id="e-admin-top-bar-root">
33 45 </div>
34 46 <?php
35 47 }
48 + protected function get_init_settings() {
49 + return [
50 + 'is_administrator' => current_user_can( 'manage_options' ),
51 + ];
52 + }
36 53
37 54 /**
38 55 * Enqueue admin scripts
39 56 */
40 57 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 );
58 + wp_enqueue_style( 'elementor-admin-top-bar-fonts', 'https://fonts.googleapis.com/css2?family=Roboto&display=swap', [], ELEMENTOR_VERSION );
42 59
43 - wp_enqueue_style( 'elementor-admin-top-bar', $this->get_css_assets_url( 'admin-top-bar' ), [], ELEMENTOR_VERSION );
60 + wp_enqueue_style( 'elementor-admin-top-bar', $this->get_css_assets_url( 'admin-top-bar', null, 'default', true ), [], ELEMENTOR_VERSION );
44 61
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 62 wp_enqueue_script( 'elementor-admin-top-bar', $this->get_js_assets_url( 'admin-top-bar' ), [
55 63 'elementor-common',
56 64 'react',
57 65 'react-dom',
58 - 'tipsy',
59 66 ], ELEMENTOR_VERSION, true );
60 67
61 - wp_set_script_translations( 'elementor-admin-top-bar', 'elementor' );
62 -
63 68 $min_suffix = Utils::is_script_debug() ? '' : '.min';
64 69
65 70 wp_enqueue_script( 'tipsy', ELEMENTOR_ASSETS_URL . 'lib/tipsy/tipsy' . $min_suffix . '.js', [
66 71 'jquery',
@@ -68,57 +73,22 @@
68 73
69 74 $this->print_config();
70 75 }
71 76
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 );
77 + /**
78 + * Register dashboard widgets.
79 + *
80 + * Adds a new Elementor widgets to WordPress dashboard.
81 + *
82 + * Fired by `wp_dashboard_setup` action.
83 + *
84 + * @since 1.9.0
85 + * @access public
86 + */
87 + public function register_dashboard_widgets() {
88 + wp_add_dashboard_widget( 'e-dashboard-widget-admin-top-bar', __( 'Elementor Top Bar', 'elementor' ), function () {} );
109 89 }
110 90
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 91 /**
122 92 * Module constructor.
123 93 */
124 94 public function __construct() {
@@ -123,21 +93,17 @@
123 93 */
124 94 public function __construct() {
125 95 parent::__construct();
126 96
127 - add_action( 'current_screen', function () {
128 - if ( ! $this->is_top_bar_active() ) {
129 - return;
130 - }
97 + add_action( 'in_admin_header', function () {
98 + $this->render_admin_top_bar();
99 + } );
131 100
132 - $this->add_frontend_settings();
101 + add_action( 'admin_enqueue_scripts', function () {
102 + $this->enqueue_scripts();
103 + } );
133 104
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 - } );
105 + add_action( 'wp_dashboard_setup', function () {
106 + $this->register_dashboard_widgets();
141 107 } );
142 108 }
143 109 }