PluginProbe
Elementor Website Builder – more than just a page builder / 4.0.8
Elementor Website Builder – more than just a page builder v4.0.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/apps/module.php +48 -0 4.2.24.0.8 View file →
@@ -1,8 +1,10 @@
1 1 <?php
2 2 namespace Elementor\Modules\Apps;
3 3
4 +use Elementor\Core\Admin\Menu\Admin_Menu_Manager;
4 5 use Elementor\Core\Base\Module as BaseModule;
6 +use Elementor\Plugin;
5 7
6 8 if ( ! defined( 'ABSPATH' ) ) {
7 9 exit; // Exit if accessed directly.
8 10 }
@@ -29,8 +31,13 @@
29 31 ];
30 32
31 33 return $categories;
32 34 } );
35 +
36 + // Add the Elementor Apps link to the plugin install action links.
37 + add_filter( 'install_plugins_tabs', [ $this, 'add_elementor_plugin_install_action_link' ] );
38 + add_action( 'install_plugins_pre_elementor', [ $this, 'maybe_open_elementor_tab' ] );
39 + add_action( 'admin_print_styles-plugin-install.php', [ $this, 'add_plugins_page_styles' ] );
33 40 }
34 41
35 42 public function enqueue_assets() {
36 43 add_filter( 'admin_body_class', [ $this, 'body_status_classes' ] );
@@ -46,6 +53,47 @@
46 53 public function body_status_classes( $admin_body_classes ) {
47 54 $admin_body_classes .= ' elementor-apps-page';
48 55
49 56 return $admin_body_classes;
57 + }
58 +
59 + public function add_elementor_plugin_install_action_link( $tabs ) {
60 + $tabs['elementor'] = esc_html__( 'For Elementor', 'elementor' );
61 +
62 + return $tabs;
63 + }
64 +
65 + public function maybe_open_elementor_tab() {
66 + if ( ! isset( $_GET['tab'] ) || 'elementor' !== $_GET['tab'] ) {
67 + return;
68 + }
69 +
70 + $elementor_url = add_query_arg( [
71 + 'page' => static::PAGE_ID,
72 + 'tab' => 'elementor',
73 + 'ref' => 'plugins',
74 + ], admin_url( 'admin.php' ) );
75 +
76 + wp_safe_redirect( $elementor_url );
77 + exit;
78 + }
79 +
80 + public function add_plugins_page_styles() {
81 + ?>
82 + <style>
83 + .plugin-install-elementor > a::after {
84 + content: "";
85 + display: inline-block;
86 + background-image: url("data:image/svg+xml,%3Csvg width='16' height='16' viewBox='0 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M8.33321 3H12.9999V7.66667H11.9999V4.70711L8.02009 8.68689L7.31299 7.97978L11.2928 4H8.33321V3Z' fill='%23646970'/%3E%3Cpath d='M6.33333 4.1665H4.33333C3.8731 4.1665 3.5 4.5396 3.5 4.99984V11.6665C3.5 12.1267 3.8731 12.4998 4.33333 12.4998H11C11.4602 12.4998 11.8333 12.1267 11.8333 11.6665V9.6665' stroke='%23646970'/%3E%3C/svg%3E%0A");
87 + width: 16px;
88 + height: 16px;
89 + background-repeat: no-repeat;
90 + vertical-align: text-top;
91 + margin-left: 2px;
92 + }
93 + .plugin-install-elementor:hover > a::after {
94 + background-image: url("data:image/svg+xml,%3Csvg width='16' height='16' viewBox='0 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M8.33321 3H12.9999V7.66667H11.9999V4.70711L8.02009 8.68689L7.31299 7.97978L11.2928 4H8.33321V3Z' fill='%23135E96'/%3E%3Cpath d='M6.33333 4.1665H4.33333C3.8731 4.1665 3.5 4.5396 3.5 4.99984V11.6665C3.5 12.1267 3.8731 12.4998 4.33333 12.4998H11C11.4602 12.4998 11.8333 12.1267 11.8333 11.6665V9.6665' stroke='%23135E96'/%3E%3C/svg%3E%0A");
95 + }
96 + </style>
97 + <?php
50 98 }
51 99 }