PluginProbe
ShopBuilder – WooCommerce Builder For Elementor / 3.2.4
ShopBuilder – WooCommerce Builder For Elementor v3.2.4
3.4.2 3.4.1 3.4.0 2.0.1 2.0.2 2.0.3 2.1.0 2.1.1 2.1.10 2.1.11 2.1.12 2.1.13 2.1.14 2.1.15 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.1.9 2.2.0 2.2.1 2.2.2 All 63 releases
← All changes | app/Controllers/Admin/AdminInit.php +112 -32 2.3.03.2.4 View file →
@@ -1,15 +1,22 @@
1 1 <?php
2 +/**
3 + * Admin Init.
4 + *
5 + * @package RadiusTheme\SB
6 + */
2 7
3 8 namespace RadiusTheme\SB\Controllers\Admin;
4 9
5 10 defined( 'ABSPATH' ) || exit();
6 11
7 -use RadiusTheme\SB\Controllers\Admin\Ajax as Ajax;
8 12 use RadiusTheme\SB\Helpers\Fns;
9 13 use RadiusTheme\SB\Traits\SingletonTrait;
14 +use RadiusTheme\SB\Controllers\Admin\Ajax as Ajax;
10 15
11 -
16 +/**
17 + * Admin Init.
18 + */
12 19 class AdminInit {
13 20 /**
14 21 * Parent Menu Page Slug
15 22 */
@@ -24,17 +31,16 @@
24 31 * Parent Menu Hook
25 32 *
26 33 * @var string
27 34 */
28 - static $parent_menu_hook = '';
35 + public static $parent_menu_hook = '';
29 36
30 - // private $menu_link_part;
31 -
32 37 use SingletonTrait;
33 38
39 + /**
40 + * Class constructor.
41 + */
34 42 public function __construct() {
35 - // $this->menu_link_part = admin_url( 'admin.php?page=rtsb' );
36 - $this->remove_all_notices();
37 43 $this->init();
38 44 $this->ajax_actions();
39 45 $this->upgrade();
40 46 }
@@ -45,10 +51,12 @@
45 51 * @return void
46 52 */
47 53 public function ajax_actions() {
48 54 Ajax\DefaultTemplate::instance();
55 + if ( defined( 'ELEMENTOR_VERSION' ) ) { // Elementor Check.
56 + Ajax\CreateTemplate::instance();
57 + }
49 58 Ajax\ModalTemplate::instance();
50 - Ajax\CreateTemplate::instance();
51 59 Ajax\AdminSettings::instance();
52 60 }
53 61
54 62 /**
@@ -57,17 +65,31 @@
57 65 * @return void
58 66 */
59 67 public function upgrade() {
60 68 Notice\Upgrade::instance();
69 + // phpcs:ignore Squiz.PHP.CommentedOutCode.Found
70 + // Notice\BFDiscount::instance();.
71 + // phpcs:ignore Squiz.PHP.CommentedOutCode.Found
72 + // Notice\BlackFridayV2::instance();.
61 73 Notice\Review::instance();
62 - Notice\EarlyBirdDiscount::instance();
63 74 }
64 75
76 + /**
77 + * Init.
78 + *
79 + * @return void
80 + */
65 81 public function init() {
66 82 add_action( 'admin_menu', [ $this, 'add_menu' ], 25 );
83 + add_action( 'in_admin_header', [ $this, 'in_admin_header_functionality' ], 1000 );
67 84 PluginRow::instance();
68 85 }
69 86
87 + /**
88 + * Add menu.
89 + *
90 + * @return void
91 + */
70 92 public function add_menu() {
71 93 self::$parent_menu_hook = add_menu_page(
72 94 esc_html__( 'ShopBuilder', 'shopbuilder' ),
73 95 esc_html__( 'ShopBuilder', 'shopbuilder' ),
@@ -95,10 +117,10 @@
95 117 [ $this, 'get_help_page' ],
96 118 );
97 119 add_submenu_page(
98 120 self::MENU_PAGE_SLUG,
99 - esc_html__( 'Themes', 'shopbuilder' ),
100 - esc_html__( 'Themes', 'shopbuilder' ),
121 + esc_html__( 'Themes & Apps', 'shopbuilder' ),
122 + esc_html__( 'Themes & Apps', 'shopbuilder' ),
101 123 self::MENU_CAPABILITY,
102 124 'rtsb-themes',
103 125 [ $this, 'get_themes_page' ],
104 126 );
@@ -103,17 +125,26 @@
103 125 [ $this, 'get_themes_page' ],
104 126 );
105 127 do_action( 'rtsb/add/more/submenu', self::MENU_PAGE_SLUG, self::MENU_CAPABILITY );
106 128
107 - // Remove Parent Submenu
129 + // Remove Parent Submenu.
108 130 remove_submenu_page( self::MENU_PAGE_SLUG, self::MENU_PAGE_SLUG );
109 131 }
110 132
111 - function redirect_to_content() {
112 - wp_redirect( admin_url( 'admin.php?page=rtsb-settings' ) );
133 + /**
134 + * Redirect to content.
135 + *
136 + * @return void
137 + */
138 + public function redirect_to_content() {
139 + wp_redirect( admin_url( 'admin.php?page=rtsb-settings' ) ); // phpcs:ignore WordPress.Security.SafeRedirect.wp_redirect_wp_redirect
113 140 }
114 141
115 -
142 + /**
143 + * Settings Page.
144 + *
145 + * @return void
146 + */
116 147 public function settings_page() {
117 148 ?>
118 149 <div class="wrap rtsb-admin-wrap">
119 150 <div id="rtsb-admin-app"></div>
@@ -120,34 +151,83 @@
120 151 </div>
121 152 <?php
122 153 }
123 154
155 + /**
156 + * Help Page.
157 + *
158 + * @return void
159 + */
124 160 public function get_help_page() {
125 161 Fns::renderView( 'help' );
126 162 }
127 163
164 + /**
165 + * Themes Page.
166 + *
167 + * @return void
168 + */
128 169 public function get_themes_page() {
129 170 Fns::renderView( 'themes' );
130 171 }
131 172
132 173 /**
133 - * Remove admin notices
174 + * Admin Header
134 175 */
135 - public function remove_all_notices() {
136 - add_action(
137 - 'in_admin_header',
138 - function () {
139 - $screen = get_current_screen();
176 + public function in_admin_header_functionality() {
177 + $screen = get_current_screen();
178 + $isBuilderTemplate = 'edit-rtsb_builder' === $screen->id;
179 + $pages = [
180 + 'shopbuilder_page_rtsb-get-help',
181 + 'shopbuilder_page_rtsb-settings',
182 + 'shopbuilder_page_rtsb-license',
183 + 'shopbuilder_page_rtsb-themes',
184 + ];
185 + $isSettingsPage = in_array( $screen->base, $pages, true );
186 + if ( $isBuilderTemplate || $isSettingsPage ) {
187 + remove_all_actions( 'admin_notices' );
188 + remove_all_actions( 'all_admin_notices' );
189 + }
140 190
141 - if ( in_array(
142 - $screen->base,
143 - [ 'shopbuilder_page_rtsb-settings', 'shopbuilder_page_rtsb-license', 'shopbuilder_page_rtsb-themes' ],
144 - true
145 - ) ) {
146 - remove_all_actions( 'admin_notices' );
147 - remove_all_actions( 'all_admin_notices' );
148 - }
149 - },
150 - 1000
151 - );
191 + $load_elementor_scripts = Fns::should_load_elementor_scripts();
192 +
193 + if ( $isBuilderTemplate ) {
194 + if ( ! defined( 'ELEMENTOR_VERSION' ) && $load_elementor_scripts ) {
195 + ?>
196 + <div class='rtsb-message-for-elementor-missing'>
197 + <div class="rtsb-builder-notice-content">
198 + <?php
199 + echo sprintf(
200 + /* translators: %s: Elementor */
201 + esc_html__( 'To build your WooCommerce pages, please Install and Activate the %s Plugin.', 'shopbuilder' ),
202 + '<a href="' . esc_url( admin_url( 'plugin-install.php?s=elementor&tab=search&type=term' ) ) . '" target="_blank">' . esc_html__( 'Elementor Website Builder', 'shopbuilder' ) . '</a>'
203 + );
204 + ?>
205 + </div>
206 + </div>
207 + <?php
208 + } elseif ( defined( 'ELEMENTOR_VERSION' ) && ! $load_elementor_scripts ) {
209 + ?>
210 + <div class='rtsb-message-for-elementor-missing'>
211 + <div class="rtsb-builder-notice-content">
212 + <?php esc_html_e( 'Elementor is installed, but script loading is disabled. Please enable "Load Elementor Scripts" in the Advanced Optimization Settings.', 'shopbuilder' ); ?>
213 + </div>
214 + </div>
215 + <?php
216 + } elseif ( ! defined( 'ELEMENTOR_VERSION' ) && ! $load_elementor_scripts ) {
217 + ?>
218 + <div class='rtsb-message-for-elementor-missing'>
219 + <div class="rtsb-builder-notice-content">
220 + <?php
221 + echo sprintf(
222 + /* translators: %s: Elementor */
223 + esc_html__( 'To build your WooCommerce pages, please Install and Activate the %s Plugin.', 'shopbuilder' ),
224 + '<a href="' . esc_url( admin_url( 'plugin-install.php?s=Elementor%2520Website%2520Builder&tab=search&type=term' ) ) . '" target="_blank">' . esc_html__( 'Elementor Website Builder', 'shopbuilder' ) . '</a>'
225 + );
226 + ?>
227 + </div>
228 + </div>
229 + <?php
230 + }
231 + }
152 232 }
153 233 }